小编Tom*_*der的帖子

如何在语义上将标题添加到列表中

这一直困扰着我一段时间,我想知道如何正确地做到这一点是否有任何共识.当我使用HTML列表时,我如何在语义上包含列表的标题?

一种选择是这样的:

<h3>Fruits I Like:</h3>
<ul>
    <li>Apples</li>
    <li>Bananas</li>
    <li>Oranges</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

但在语义上,<h3>标题没有明确地与<ul>

另一种选择是:

<ul>
    <li><h3>Fruits I Like:</h3></li>
    <li>Apples</li>
    <li>Bananas</li>
    <li>Oranges</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

但这似乎有点脏,因为标题实际上不是列表项之一.

W3C不允许此选项:

<ul>
    <h3>Fruits I Like:</h3>
    <li>Apples</li>
    <li>Bananas</li>
    <li>Oranges</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

<ul>'s只能含有一种或多种<li>

旧的"列表标题" <lh>最有意义

<ul>
    <lh>Fruits I Like:</lh>
    <li>Apples</li>
    <li>Bananas</li>
    <li>Oranges</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

但当然它不是HTML的正式组成部分

我听说它表明我们使用<label>的形式如下:

<ul>
    <label>Fruits I Like:</label>
    <li>Apples</li>
    <li>Bananas</li>
    <li>Oranges</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

但这有点奇怪,无论如何都不会验证.

在尝试设置我的列表标题时,很容易看到语义问题,我最终需要将我的<h3>标记放在第一个标记中,<li>并将其定位为样式,如下所示:

ul li:first-of-type {
    list-style: none;
    margin-left: -1em;
    /*some other header styles*/
}
Run Code Online (Sandbox Code Playgroud)

恐怖!但至少通过这种方式,我可以 …

html html-lists

107
推荐指数
5
解决办法
11万
查看次数

标签 统计

html ×1

html-lists ×1