当前位置: 首页 > article >正文

【HTML-14】HTML 列表:从基础到高级的完整指南

列表是HTML中用于组织和展示信息的重要元素。无论是导航菜单、产品特性还是步骤说明,列表都能帮助我们以结构化的方式呈现内容。本文将全面介绍HTML中的列表类型、语法、最佳实践以及一些高级技巧。

1. HTML列表的三种类型

HTML提供了三种主要的列表类型,每种都有其特定的用途。

1.1 无序列表 (<ul>)

无序列表用于展示没有特定顺序的项目集合,通常以项目符号显示。

<ul><li>咖啡</li><li></li><li>牛奶</li>
</ul>

1.2 有序列表 (<ol>)

有序列表用于需要按特定顺序展示的项目,通常以数字或字母编号。

<ol><li>预热烤箱至180°C</li><li>混合干性材料</li><li>加入湿性材料搅拌均匀</li>
</ol>

1.3 定义列表 (<dl>)

定义列表用于展示术语及其定义,适合词汇表或FAQ等场景。

<dl><dt>HTML</dt><dd>超文本标记语言,用于创建网页结构</dd><dt>CSS</dt><dd>层叠样式表,用于控制网页表现</dd>
</dl>

2. 列表属性与定制

2.1 有序列表的type和start属性

<ol type="A" start="3"><li>第三项 (C)</li><li>第四项 (D)</li>
</ol><ol type="i"><li>第一项 (i)</li><li>第二项 (ii)</li>
</ol>

2.2 使用CSS自定义列表样式

<style>.custom-list {list-style-type: none;padding-left: 0;}.custom-list li {padding: 8px;margin-bottom: 5px;background-color: #f0f0f0;border-left: 4px solid #4CAF50;}.custom-list li::before {content: "→";margin-right: 10px;color: #4CAF50;}
</style><ul class="custom-list"><li>自定义样式项1</li><li>自定义样式项2</li>
</ul>

3. 嵌套列表

列表可以嵌套使用,创建多级结构:

<ul><li>水果<ul><li>苹果</li><li>香蕉</li></ul></li><li>蔬菜<ul><li>胡萝卜</li><li>西兰花</li></ul></li>
</ul>

4. 语义化使用列表

列表不仅用于视觉呈现,更重要的是提供语义信息:

  1. 导航菜单:使用<ul><ol>包裹导航链接
  2. 步骤说明:使用<ol>表示有顺序的步骤
  3. 产品特性:使用<ul>展示无顺序的特性列表
  4. 术语解释:使用<dl>定义术语和解释
<nav aria-label="主导航"><ul><li><a href="/">首页</a></li><li><a href="/about">关于我们</a></li><li><a href="/contact">联系我们</a></li></ul>
</nav>

5. 无障碍访问考虑

  1. 为导航列表添加aria-labelaria-labelledby
  2. 避免过度嵌套(一般不超过3层)
  3. 确保列表项内容简洁明了
  4. 使用role="list"增强兼容性
<ul role="list"><li role="listitem">无障碍列表项1</li><li role="listitem">无障碍列表项2</li>
</ul>

6. 高级技巧

6.1 计数器样式

ol.custom-counter {counter-reset: section;list-style-type: none;
}ol.custom-counter li::before {counter-increment: section;content: counters(section, ".") " ";
}

6.2 列表与Flexbox/Grid布局

ul.grid-list {display: grid;grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));gap: 1rem;
}

6.3 交互式列表

<ul class="interactive-list"><li tabindex="0">可聚焦列表项1</li><li tabindex="0">可聚焦列表项2</li>
</ul><style>.interactive-list li:focus {background-color: #e0e0e0;outline: none;}
</style>

7. 常见问题与解决方案

  1. 列表项间距不一致:统一使用marginpadding
  2. 项目符号对齐问题:使用list-style-position: inside
  3. 跨浏览器样式差异:重置基础样式并统一设置
  4. 长内容换行问题:设置word-wrap: break-word

8. 最佳实践总结

  1. 根据内容语义选择合适的列表类型
  2. 适度使用嵌套(一般不超过3层)
  3. 使用CSS而不是HTML属性控制样式
  4. 考虑无障碍访问需求
  5. 保持列表项内容简洁一致
  6. 在复杂布局中考虑Flexbox或Grid替代方案

列表是HTML中最基础也最强大的元素之一。通过合理使用不同类型的列表及其定制选项,可以创建出既美观又具有良好语义结构的网页内容。掌握这些技巧将显著提升你的前端开发能力。

相关文章:

【HTML-14】HTML 列表:从基础到高级的完整指南

列表是HTML中用于组织和展示信息的重要元素。无论是导航菜单、产品特性还是步骤说明&#xff0c;列表都能帮助我们以结构化的方式呈现内容。本文将全面介绍HTML中的列表类型、语法、最佳实践以及一些高级技巧。 1. HTML列表的三种类型 HTML提供了三种主要的列表类型&#xff…...

设备驱动与文件系统:01 I/O与显示器

操作系统设备驱动学习之旅——以显示器驱动为例 从这一节开始&#xff0c;我要学习操作系统的第四个部分&#xff0c;就是i o设备的驱动。今天要讲的是第26讲&#xff0c;内容围绕i o设备中的显示器展开&#xff0c;探究显示器是如何被驱动的&#xff0c;也就是操作系统怎样让…...

.NET 9正式发布,亮点是.NET Aspire和AI

.NET 9 正式发布&#xff1a;.NET Aspire 与 AI 引领新潮流 一、.NET 9 发布概览 Microsoft 正式发布了 .NET 9&#xff0c;这一版本堪称迄今为止最高效、最现代、最安全、最智能且性能最高的 .NET 版本。它凝聚了全球数千名开发人员一年的心血&#xff0c;带来了数千项性能、…...

vue+mitt的简便使用

突然注意到 onMounted 在一个组件中可以多次调用&#xff0c;这不得发挥一下: 把绑定/解绑的逻辑封装到同一个模块中不就简化了吗&#xff0c;只需要在组件中注册一下子再传递一个回调就完事了。简单的组件中甚至不用引入onMounted和onUnmounted cnpm i mitt /src/utils/emi…...

Java正则表达式完全指南

Java正则表达式完全指南 一、正则表达式基础概念1.1 什么是正则表达式1.2 Java中的正则表达式支持 二、正则表达式基本语法2.1 普通字符2.2 元字符2.3 预定义字符类 三、Java中正则表达式的基本用法3.1 编译正则表达式3.2 创建Matcher对象并执行匹配3.3 常用的Matcher方法 四、…...

Windows搭建Swift语言编译环境?如何构建ObjC语言编译环境?Swift如何引入ObjC框架?Interface Builder的历史?

目录 Windows搭建Swift语言编译环境 如何构建ObjC语言编译环境? Swift如何引入ObjC框架? Swift和ObjC中IBOutlet和IBAction代表什么? Interface Builder的历史 Xcode的“Use Storyboards"的作用? Xcode的Playground是什么? Windows搭建Swift语言编译环境 Windo…...

第七部分:第四节 - 在 NestJS 应用中集成 MySQL (使用 TypeORM):结构化厨房的原材料管理系统

在 NestJS 这样一个结构化的框架中&#xff0c;我们更倾向于使用 ORM (Object-Relational Mapper) 来与关系型数据库交互。ORM 就像中央厨房里一套智能化的原材料管理系统&#xff0c;它将数据库中的表格和行映射到我们熟悉的对象和类的实例。我们可以使用面向对象的方式来操作…...

Bug 背后的隐藏剧情

Bug 背后的隐藏剧情 flyfish 1. 「bug」&#xff1a;70多年前那只被拍进史书的飞蛾 故事原型&#xff1a;1947年哈佛实验室的「昆虫命案」 1947年的计算机长啥样&#xff1f;像一间教室那么大&#xff0c;塞满了几万根继电器&#xff08;类似老式开关&#xff09;&#xff…...

Golang | 搜索哨兵-对接分布式gRPC服务

哨兵&#xff08;centennial&#xff09;负责接待客人&#xff0c;直接与调用方对接。哨兵的核心组件包括service HUB和connection pool。service HUB用于与服务中心通信&#xff0c;获取可提供服务的节点信息。connection pool用于缓存与index worker的连接&#xff0c;避免每…...

智慧充电桩数字化管理平台:环境监测与动态数据可视化技术有哪些作用?

随着新能源汽车的普及&#xff0c;智慧充电桩作为基础设施的重要组成部分&#xff0c;正逐步向数字化、智能化方向发展。环境监测与动态数据可视化技术的应用&#xff0c;为充电桩的高效管理和运维提供了全新解决方案。通过实时采集环境参数与运行数据&#xff0c;并结合可视化…...

debian12.9或ubuntu,vagrant离线安装插件vagrant-libvirt

系统盘: https://mirror.lzu.edu.cn/debian-cd/12.9.0/amd64/iso-dvd/debian-12.9.0-amd64-DVD-1.iso 需要的依赖包,无需安装ruby( sudo apt install -y ruby-full ruby-dev rubygems ) : apt install -y iptables; apt install -y curl;rootdebian129:~# dpkg -l iptables …...

家政小程序开发,开启便捷生活新篇章

在快节奏的现代生活中&#xff0c;家务琐事常常让人分身乏术&#xff0c;如何高效解决家政服务需求成了众多家庭的难题。家政小程序开发&#xff0c;正是为解决这一痛点而生&#xff0c;它将为您带来前所未有的便捷生活体验。 想象一下&#xff0c;您只需打开手机上的家政小程…...

C++ 重载(Overload)、重写(Override)、隐藏(Hiding) 的区别

C 重载(Overload)、重写(Override)、隐藏(Hiding) 的区别 这三个概念是 C 面向对象的核心知识点&#xff0c;也是面试必问内容。下面我们从定义、发生条件、代码示例、底层原理全方位解析它们的区别。 一、核心区别对比表&#xff08;速记版&#xff09; 特性重载(Overload)…...

李臻20242817_安全文件传输系统项目报告_第14周

安全文件传输系统项目报告&#xff08;第 14 周&#xff09; 1. 代码链接 Gitee 仓库地址&#xff1a;https://gitee.com/li-zhen1215/homework/tree/master/Secure-file 代码结构说明&#xff1a; SecureFileTransfer/ ├── client/ # 客户端主目…...

20250531MATLAB三维绘图

MATLAB三维绘图 三维曲线&#xff1a;plot3功能介绍代码实现过程plot3实现效果 三维曲面空间曲面作图命令&#xff1a;meshmeshgrid语法示例应用meshgrid实操训练 peakspeaks 的基本用法peaks数学表达式实操训练自定义网格大小使用自定义网格 meshMATLAB代码对齐快捷键Ctrli墨西…...

深入理解C#异步编程:原理、实践与最佳方案

在现代软件开发中&#xff0c;应用程序的性能和响应能力至关重要。特别是在处理I/O密集型操作&#xff08;如网络请求、文件读写、数据库查询&#xff09;时&#xff0c;传统的同步编程方式会导致线程阻塞&#xff0c;降低程序的吞吐量。C# 的异步编程模型&#xff08;async/aw…...

基于千帆大模型的AI体检报告解读系统实战:使用OSS与PDFBox实现PDF内容识别

目录 说明 前言 需求 流程说明 表结构说明 整体流程 百度智能云 注册和实名认证 创建应用 费用说明 大模型API说明 集成大模型 设计Prompt 上传体检报告 读取PDF内容 功能实现 智能评测 抽取大模型工具 功能实现 总结 说明 AI体检报告解读、病例小结或者…...

Redis缓存落地总结

最近在优化电子签系统&#xff0c;涉及到缓存相关的也一并优化了&#xff0c;写个文档做个总结&#xff0c;防止以后开发时又考虑不全 1、避免大key 避免缓存大PDF文件&#xff1a; &#x1f4a1; 经验值&#xff1a;单个Redis Value不超过10KB&#xff0c;集合元素不超过500…...

Spring,SpringMVC,SpringBoot

1.Spring最核心包括aop和ioc概念 AOP 能够将将哪些于业务无关的&#xff0c;并且大量重复的业务逻辑进行封装起来&#xff0c;便于减少重复代码&#xff0c;降低模块之间的耦合度&#xff0c;给未来的系统更好的可用性和可维护性。 Spring中AOP是采用动态代理&#xff0c;JDK代…...

npm、pnpm、yarn使用以及区别

npm 使用 安装包&#xff1a;在项目目录下&#xff0c;npm install <包名> 用于本地安装包到 node_modules 目录&#xff0c;并添加到 package.json 的 dependencies 中&#xff1b;npm install -g <包名> 用于全局安装&#xff0c;适用于命令行工具等。初始化项目…...

flutter加载dll 报错问题

解决flutter加载dll 报错问题 LoadLibrary 报错 126 or 193 明确一点&#xff1a;flutter构建exe 时默认是MSVC的。 1. 先检查dll 的位数是否满足 file ***.dll output: PE32 executable (DLL) (console) x86-64, for MS Windows, 19 sections 这种是64位的机器。 满足的话可…...

数据分析学习笔记——A/B测试

目录 前言 A/B测试中的统计学方法 假设检验 Levenes Test莱文测试 t 检验&#xff08;两组均值差异&#xff09; 实战案例 数据来源及参考资料 代码详解 导入数据 计算ROI Request检验 GMV检验 ROI检验 结语 前言 什么是A/B测试&#xff1f;说白了就是中学生物实…...

【python深度学习】Day 41 简单CNN

知识回顾 数据增强卷积神经网络定义的写法batch归一化&#xff1a;调整一个批次的分布&#xff0c;常用与图像数据特征图&#xff1a;只有卷积操作输出的才叫特征图调度器&#xff1a;直接修改基础学习率 卷积操作常见流程如下&#xff1a; 1. 输入 → 卷积层 → Batch归一化层…...

基于RK3568/RK3588/全志H3/飞腾芯片/音视频通话程序/语音对讲/视频对讲/实时性好/极低延迟

一、前言说明 近期收到几个需求都是做音视频通话&#xff0c;很多人会选择用webrtc的方案&#xff0c;这个当然是个不错的方案&#xff0c;但是依赖的东西太多&#xff0c;而且相关组件代码量很大&#xff0c;开发难度大。所以最终选择自己属性的方案&#xff0c;那就是推流拉…...

解决 Win11 睡眠后黑屏无法唤醒的问题

目录 一、问题描述二、解决方法1. 禁用快速启动2. 设置 Management Engine Interface3. 允许混合睡眠其他命令 4. 修复系统文件5. 更新 Windows 或驱动程序6. 其他1&#xff09;更改电源选项2&#xff09;刷新 Hiberfil.sys 文件3&#xff09;重置电源计划4&#xff09;运行系统…...

[ElasticSearch] RestAPI

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏: &#x1f9ca; Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection与…...

Linux中的shell脚本

什么是shell脚本 shell脚本是文本的一种shell脚本是可以运行的文本shell脚本的内容是由逻辑和数据组成shell脚本是解释型语言 用file命令可以查看文件是否是一个脚本文件 file filename 脚本书写规范 注释 单行注释 使用#号来进行单行注释 多行注释 使用 : " 注释内容…...

dvwa3——CSRF

LOW&#xff1a; 先尝试change一组密码&#xff1a;123456 修改成功&#xff0c;我们观察上面的url代码 http://localhost/DVWA/vulnerabilities/csrf/?password_new123456&password_conf123456&ChangeChange# 将password_new部分与password_conf部分改成我们想要的…...

【学习笔记】Transformer

学习的博客&#xff08;在此致谢&#xff09;&#xff1a; 初识CV - Transformer模型详解&#xff08;图解最完整版&#xff09; 1 整体结构 Transformer由Encoder和Decoder组成&#xff0c;分别包含6个block。 Transformer的工作流程大体如下&#xff1a; 获取每个单词的em…...

欢乐熊大话蓝牙知识12:用 BLE 打造家庭 IoT 网络的三种方式

🏠 用 BLE 打造家庭 IoT 网络的三种方式 不止是“蓝牙耳机”,BLE 还能把你家“点亮成精”! 👋 前言:BLE 不只是蓝牙耳机的“代名词” 蓝牙?很多人一听就联想到“耳机连接失败请重试”。但你知道吗?现在 BLE(Bluetooth Low Energy)在智能家居中已经偷偷搞起了大事情。…...