HTML列表

主要有三种类型的 HTML 列表:

  • 无序列表 (Unordered List - <ul>) :用于表示一组项目,这些项目的顺序不重要或没有特定的逻辑顺序。浏览器通常会使用项目符号(如圆点、方块等)来标记列表项。
  • 有序列表 (Ordered List - <ol>) :用于表示一组项目,这些项目的顺序很重要(例如,步骤、排名)。浏览器通常会使用数字或字母来标记列表项。
  • 描述列表 (Description List - <dl>) :用于表示一组术语及其对应的描述(名/值对)。常用于词汇表、元数据列表等。

下面分别详细介绍并提供代码示例:

1. 无序列表 (<ul>)

  • 容器标签 :<ul> (unordered list)
  • 列表项标签 :<li> (list item) - 每个列表项都放在 <li> 标签内。

用途:导航菜单、功能列表、项目符号列表、不强调顺序的任何项目集合。

示例代码:

html 复制代码
      <!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>无序列表示例</title>
</head>
<body>

    <h2>我喜欢的购物清单</h2>
    <ul>
        <li>苹果</li>
        <li>牛奶</li>
        <li>面包</li>
        <li>咖啡豆</li>
    </ul>

    <h2>网站主要功能</h2>
    <ul>
        <li>用户注册与登录</li>
        <li>文章发布与管理</li>
        <li>在线评论</li>
        <li>站内搜索</li>
    </ul>

</body>
</html>
    

浏览器默认显示效果:列表项前通常带有实心圆点 (disc)。可以通过 CSS 的 list-style-type 属性修改项目符号样式(如 circle, square, none 等)。

2. 有序列表 (<ol>)

  • 容器标签 :<ol> (ordered list)
  • 列表项标签 :<li> (list item) - 与无序列表相同。

用途:操作步骤、排名列表、带有明确顺序的任何项目集合。

示例代码:

html 复制代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>有序列表示例</title>
</head>
<body>

    <h2>泡茶步骤</h2>
    <ol>
        <li>烧开水</li>
        <li>预热茶具</li>
        <li>放入茶叶</li>
        <li>冲泡</li>
        <li>等待片刻</li>
        <li>享用</li>
    </ol>

    <h2>比赛前三名</h2>
    <ol>
        <li>张三</li>
        <li>李四</li>
        <li>王五</li>
    </ol>

    <h2>使用不同序号类型</h2>
    <ol type="a"> <!-- type 属性可以改变序号样式 -->
        <li>第一项 (a)</li>
        <li>第二项 (b)</li>
    </ol>

    <ol type="I" start="5"> <!-- type 和 start 属性 -->
        <li>第五项 (V)</li>
        <li>第六项 (VI)</li>
    </ol>

     <ol reversed> <!-- reversed 属性,序号倒序 -->
        <li>第三项</li>
        <li>第二项</li>
        <li>第一项</li>
    </ol>

</body>
</html>
    

浏览器默认显示效果 :列表项前通常带有数字序号 (1, 2, 3...)。
常用属性:

  • type: 指定序号类型 (1 - 数字(默认),a - 小写字母,A - 大写字母,i - 小写罗马数字,I - 大写罗马数字)。虽然可用,但推荐使用 CSS 的 list-style-type 属性进行样式控制。
  • start: 指定序号的起始值(必须是数字,即使 type 是字母或罗马数字)。
  • reversed: 布尔属性,如果存在,则列表项按降序编号。

3. 描述列表 (<dl>)

  • 容器标签 :<dl> (description list)
  • 术语标签 :<dt> (description term) - 定义要描述的术语或名称。
  • 描述标签 :<dd> (description details) - 提供对前面 的描述或定义。

用途:词汇表、术语定义、显示键值对数据(如产品规格、个人信息)。一个
可以对应一个或多个 <dd>,多个 <dt> 也可以共享一个或多个 <dd>。

示例代码:

html 复制代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>描述列表示例</title>
</head>
<body>

    <h2>HTML 列表类型</h2>
    <dl>
        <dt>ul</dt>
        <dd>无序列表 (Unordered List)。用于项目顺序不重要的列表。</dd>

        <dt>ol</dt>
        <dd>有序列表 (Ordered List)。用于项目顺序很重要的列表。</dd>

        <dt>dl</dt>
        <dd>描述列表 (Description List)。用于包含术语和描述的列表。</dd>
        <dd>通常包含 <dt> (术语) 和 <dd> (描述) 标签。</dd> <!-- 一个 dt 可以有多个 dd -->
    </dl>

    <h2>产品规格</h2>
    <dl>
        <dt>屏幕尺寸</dt>
        <dd>6.1 英寸</dd>
        <dt>分辨率</dt>
        <dd>2532 x 1170 像素</dd>
        <dt>颜色</dt>
        <dd>黑色</dd>
        <dd>白色</dd>
        <dd>红色</dd>
    </dl>

</body>
</html>
    

浏览器默认显示效果 :<dd> 元素通常会相对于 <dt> 元素进行缩进。

嵌套列表 (Nesting Lists)

列表可以嵌套在其他列表项 (<li>) 中,以创建多级列表结构。

示例代码:

html 复制代码
      <!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>嵌套列表示例</title>
</head>
<body>

    <h2>网站导航结构</h2>
    <ul>
        <li>首页</li>
        <li>产品中心
            <ul> <!-- 嵌套的无序列表,必须放在 <li> 内部 -->
                <li>产品类别 A
                    <ol> <!-- 更深层嵌套,可以是不同类型的列表 -->
                        <li>产品 A1</li>
                        <li>产品 A2</li>
                    </ol>
                </li>
                <li>产品类别 B</li>
                <li>产品类别 C</li>
            </ul>
        </li>
        <li>关于我们</li>
        <li>联系方式</li>
    </ul>

</body>
</html>
    

关键点总结:

  • 语义化: 根据内容的逻辑关系选择最合适的列表类型 (ul, ol, dl)。
  • 结构 : <li> 必须是 <ul> 或 <ol> 的直接子元素。<dt> 和 <dd> 必须是 <dl> 的直接子元素。
  • 嵌套 : 将子列表(整个 <ul> 或 <ol>)放在父列表的 <li> 元素内部。
  • 样式 : 列表的视觉外观(项目符号、编号样式、间距、缩进等)主要通过 CSS 来控制,而不是依赖 HTML 属性(如 ol 的 type)。

在编写 HTML 时,正确使用列表标签不仅能让内容结构更清晰,也有利于搜索引擎优化 (SEO) 和网页可访问性 (Accessibility),因为屏幕阅读器等辅助技术可以更好地理解和导航列表结构。

相关推荐
前端snow3 小时前
ai agent --- postgreSQL 关系型数据库
前端
卷无止境3 小时前
ECharts:把数据变成故事的可视化利器
前端
Eric_见嘉3 小时前
在职前端 Skill 和 MCP 分享
前端·后端·agent
liangshanbo12154 小时前
面试题:如何优化 Webpack 的打包速度?
前端·webpack·node.js
wengad4 小时前
从 wangEditor 迁到 wangEditor-next
前端·javascript·vue.js
行者-全栈开发5 小时前
【前端/JS框架】CVE-2026-3854:GitHub Enterprise Server X-Stat注入XSS漏洞深度剖析与紧急修复指南
前端·javascript·github
计算机魔术师6 小时前
AMD砸82亿买下李飞飞,这次不卖芯片卖什么?
前端
hzxpaipai7 小时前
杭州企业官网怎么建设?从策划到上线的5步建站方法
运维·服务器·前端·网络
怕浪猫7 小时前
2026年金九银十,我面了22个前端
前端·javascript·面试
IT_陈寒7 小时前
Vue 这个响应式陷阱,我的头发都掉没了
前端·人工智能·后端