我很难理解这里的文档: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元素不能包含在这样的元素中。我读错了文档,还是我发现过时的所有验证工具?
答案 0 :(得分:3)
首先,您没有使用HTML规范。 http://w3c.github.io/html-reference/只是一个“非规范参考”,过时了(这是2012年的草稿)。
HTML5规范(目前是最新的HTML W3C推荐标准)是https://www.w3.org/TR/2014/REC-html5-20141028/。 HTML 5.1是currently a Candidate Recommendation(很快就会成为W3C建议书)。
以下链接指向HTML5 W3C建议书。
a
element的内容模型为transparent。内容模型解释了a
元素可能包含的其他元素。在 transparent 的情况下,这意味着将使用父元素的内容模型。但内容模型没有说明a
元素可能出现的位置.¹
“可以使用此元素的上下文”²列出元素可能出现的位置。在a
的情况下,它是:
预计会phrasing content。
因此,您可以使用a
,只允许您使用文字abbr
,span
等。请注意,此处未列出li
元素({1}} {1}}不是措辞内容。)
查看ul
element的内容模型:它只允许li
和“脚本支持”元素(不是li
)。
¹当然,除a
元素中嵌套的a
元素外。但明确禁止这样做:“必须没有interactive content后代”。
²此列表是非规范性的(仅为方便起见而提供)。您可以通过检查每个可能的父级内容模型来查看规范性上下文。
答案 1 :(得分:-1)
法律是的,没有人会因此而入狱。 - 有效吗? 否!
<强> W3.org: li – list item 强>
允许的父元素
如评论中所述,某些浏览器会显示无效的HTML,但验证人员会一直警告您无效的代码。