ol vs. ul vs. div

2024-11-26  本文已影响0人  涅槃快乐是金

使用 <ol><ul><div> 创建列表的区别

示例代码

以下是分别用 <ol><div> 创建一个电影列表的例子:

<!-- 有序列表 -->
<ol>
  <li>Clerks (1994)</li>
  <li>Mallrats (1995)</li>
  <li>Jay and Silent Bob Strike Back (2001)</li>
</ol>

<!-- 纯文本容器 -->
<div>
  <div>Clerks (1994)</div>
  <div>Mallrats (1995)</div>
  <div>Jay and Silent Bob Strike Back (2001)</div>
</div>

为什么使用 <ol><ul> 元素有意义?

语义化 HTML 的重要性
有人提问:“语义化 HTML 是否真的有用?”这是一个好问题,因为许多人知道如何写 HTML,却不了解它的意义。以下是 <ol><ul> 的一些优势:

  1. 屏幕阅读器支持

    • 屏幕阅读器会将内容识别为列表,并报告它是一个包含特定项数的列表。
    • 屏幕阅读器可能会读出每项的编号或符号(如“项目 1”、“项目 2”)。
    • 屏幕阅读器用户可以使用快捷键在页面中的列表之间跳转。
  2. 视觉结构

    • <ol><ul> 为相关内容提供清晰的分组,便于用户快速理解信息关系。
  3. 样式化

    • 使用 CSS,可以轻松地对(无序或有序)列表进行样式设置。

无序列表 (<ul>)

定义:
用于表示一个主题相关但没有特定顺序的项目集合。

示例:

<h3>我最喜欢的 Kevin Smith 电影</h3>
<ul>
  <li>Jay and Silent Bob Strike Back</li>
  <li>Mallrats</li>
  <li>Clerks</li>
</ul>

屏幕阅读器输出:
使用 NVDA 和 Firefox,屏幕阅读器会这样读取:

“列表,共 3 项,项目符号 Jay and Silent Bob Strike Back,项目符号 Mallrats,项目符号 Clerks,退出列表。”


有序列表 (<ol>)

定义:
用于表示一个按特定顺序排列的项目集合,例如时间顺序或优先级。

示例:

<h3>按上映日期排序的 Kevin Smith 电影</h3>
<ol>
  <li>Clerks (1994)</li>
  <li>Mallrats (1995)</li>
  <li>Jay and Silent Bob Strike Back (2001)</li>
</ol>

屏幕阅读器输出:
使用 NVDA 和 Firefox,屏幕阅读器会这样读取:

“列表,共 3 项,1 Clerks,2 Mallrats,3 Jay and Silent Bob Strike Back,退出列表。”


使用 <div>

如果不使用语义化元素,而是仅用 <div> 包裹内容,屏幕阅读器会将内容读取为一组无关联的字符串,没有提供结构性信息。

示例:

<h3>按上映日期排序的 Kevin Smith 电影</h3>
<div>
  <div>Clerks (1994)</div>
  <div>Mallrats (1995)</div>
  <div>Jay and Silent Bob Strike Back (2001)</div>
</div>

屏幕阅读器输出:
NVDA 和 Firefox 会读取:

“Jay and Silent Bob Strike Back,Mallrats,Clerks。”

相比 <ol><ul>,这种方式缺乏语义信息,用户无法直接感知内容的分组或顺序关系。


列表样式化

当我们尝试对列表进行样式化时,可能会遇到一些复杂情况,例如需要移除默认的编号或项目符号。但这些问题可以通过 CSS 解决。有关列表样式化的深入探讨,请参阅 Scott O'Hara 的文章 Fixing Lists

总结

上一篇 下一篇

猜你喜欢

热点阅读