我最近遇到过使用<ul>
用于HTML列表的情况,但我真正想要的是<ol>
。我正在绞尽脑汁试图设置一个变量,以便我可以根据需要随时更改它。然后我突然意识到,我可以使用CSS ul.class {list-style-type: decimal;}
。这将使我得到我正在寻找的东西。
但后来我想,为什么我们甚至还有<ol>
?它不应该被弃用吗?因此,列表类型不是一个独特的样式选择,属于样式表吗?至少,这总是解释为什么你不能从HTML页面复制和粘贴列表项目符号。然后我进一步想知道<dl>
。是的,它稍微方便一点,但您可以使用嵌套的<div>
,<p>
,<ul>
或<span>
轻松制作相同的效果。
In this other question,似乎可以说<ol>
和<dl>
具有语义质量。我可以购买它,特别是对于<dl>
,但是面对经常被告知列表类型是样式而不是内容它会飞。还有更多的东西,我没有看到为什么他们还没有被弃用?
答案 0 :(得分:8)
ul,ol和dl之间的差异不仅仅是这些元素在渲染时的样子。存在巨大的语义差异。这就是为什么他们不能被弃用以支持ul。
我可以使用CSS ul.class {list-style-type:decimal;}。这个会 得到我正在寻找的东西。
看,这就是你错了。你不会得到完全相同的结果。如果你只使用ol或dl是因为它们看起来如此,那你就错了。
列表类型不是一个独特的样式选择
绝对不是。当你使用html标签时,你应该知道为什么要这样做。所有3种类型的列表都有其自己的含义和用途。
ul =无序列表。 元素的顺序根本不重要 一个基本的例子是购物清单。你不在乎你首先购买的东西,你只想购买清单上的所有物品。
ol =有序列表。 订单非常具体,首先是什么才重要。一个很好的例子是蛋糕的配方。你不能先烤它然后加入成分。
dl =说明列表。您通常将此用于包含键值对,因为它包含一组术语及其定义的列表。
当然,当谈到这些列表的外观时,您可以将其中一个换成另一个并且只应用css规则。或者甚至使用几个div / span标签并从头开始创建它 然而,当谈到语义标记时,差异是巨大的,正如我所解释的那样。
HTML中的标签不仅仅包含内容,但它们也有意义。它们描述了我们正在处理的内容。例如,当你关心SEO时,这很重要。
样式表仅用于改变浏览器中元素的外观,但在解释内容时它们是无用的。例如,网络抓取工具根本不关心css。
答案 1 :(得分:3)
面对经常被告知列表类型是样式而不是内容
谁说的? HTML标记是语义,它传达意思。总是想象你在没有样式表的上下文的情况下解析你的HTML;说因为你是一个搜索引擎,或者因为你正在挖掘数据。然后ol
,ul
和dl
之间的语义差异非常明显且显着。