将李包裹在一起是否合法?

时间:2016-08-19 12:53:09

标签: html structure w3c

我很难理解这里的文档:http://w3c.github.io/html-reference/terminology.html#transparent从这里链接到:http://w3c.github.io/html-reference/a.html#a-changes

据我所知,以下代码应该没问题:

<!doctype html>
<head><title>Yo!</title>
<body>
    <ul>
        <a>
            <li>My list item is wrapped in an anchor.
        </a>
    </ul>

但是当我将这段代码粘贴到不同的验证器中时,他们都同意li元素不能包含在这样的元素中。我读错了文档,还是我发现过时的所有验证工具?

2 个答案:

答案 0 :(得分:3)

首先,您没有使用HTML规范。 http://w3c.github.io/html-reference/只是一个“非规范参考”,过时了(这是2012年的草稿)。

HTML5规范(目前是最新的HTML W3C推荐标准)是https://www.w3.org/TR/2014/REC-html5-20141028/HTML 5.1currently a Candidate Recommendation(很快就会成为W3C建议书)。

以下链接指向HTML5 W3C建议书。

a element的内容模型为transparent。内容模型解释了a元素可能包含的其他元素。在 transparent 的情况下,这意味着将使用父元素的内容模型。但内容模型没有说明a元素可能出现的位置.¹

“可以使用此元素的上下文”²列出元素可能出现的位置。在a的情况下,它是:

  

预计会phrasing content

因此,您可以使用a,只允许您使用文字abbrspan等。请注意,此处未列出li元素({1}} {1}}不是措辞内容。)

查看ul element的内容模型:它只允许li和“脚本支持”元素(不是li)。

¹当然,除a元素中嵌套的a元素外。但明确禁止这样做:“必须没有interactive content后代”。

²此列表是非规范性的(仅为方便起见而提供)。您可以通过检查每个可能的父级内容模型来查看规范性上下文。

答案 1 :(得分:-1)

法律是的,没有人会因此而入狱。 - 有效吗? 否!

<强> W3.org: li – list item

  

允许的父元素

     

ulolmenu

如评论中所述,某些浏览器会显示无效的HTML,但验证人员会一直警告您无效的代码。