我有一个HTML文档,我想在语义上将文本分组到UL的头部作为“header”。最初的尝试如下所示:
<ul id="databases">
Databases:
<li>Microsoft SQL Server - 10+ years</li>
<li>Sybase SQL Server - 5 years</li>
<li>Oracle - 5 years</li>
</ul>
字符串
W3C验证器指出,在UL内部不允许有文本,但在LI外部是不允许的。我可以把文本放在LI内部,然后使用伪类:first-child在我的CSS中查找“header”,但这显然不是语义正确的方法。
我该如何正确处理这件事?
8条答案
按热度按时间aiqt4smr1#
它不应该在第一个li中设置,因为这将假定与后续li元素的兄弟关系,而头部在层次结构中更重要。
字符串
根据与页面上其他标题的层次关系,将h2替换为h(n)。如果有其他标题共享相同的样式,那么在css中定位标题只需给予一个类。
型
否则给予它一个id
wj8zmpe12#
仅供参考,HTML 3.0有
<lh>
:字符串
fhg3lkii3#
您可以尝试使用
<dl>
(描述列表)标记来实现列表目的,这样可以获得更简洁的代码。字符串
更多关于描述列表的信息,请参见http://www.w3schools.com/tags/tag_dl.asp
bqucvtff4#
字符串
或甚至更好
型
注意,
h1
被限制在section
中,所以列表后面的内容是否属于标题 Databases 并不模糊。换句话说,标题在节中的作用域是scoped。atmip9wb5#
这里有一个替代答案:
字符串
这样做的好处是你可以在你的UL中使用几个这样的“头”,而不用把它们分成单独的UL和默认白色,这会导致(或者使用CSS来消除空白...)
h4cxqtbf6#
或者像这样嵌套列表
字符串
crcmnpdw7#
根据my answer to this question,我发现HTML5
figure
和figcaption
元素最合适:字符串
或者CSS3的::before伪元素可以是一个很好的解决方案:
超文本标记语言:
型
CSS:
型
bwntbbo38#
也许是这样的:
字符串