我总是会说不,但后来我从Semantic UI(和Fomantic UI)中发现了这段代码,这是一个非常流行的前端框架:
<h2 class="ui icon header">
<i class="settings icon"></i>
<div class="content">
Account Settings
<div class="sub header">Manage your account settings and set e-mail preferences.</div>
</div>
</h2>
这段代码让我觉得很不寻常,原因有两个:(1)<i>
标记已被重新用作图标的通用钩子,(2) 嵌套<div>
在<h2>
元素内部。我质疑第一个的语义,以及第二个的有效性。
现在我想代码在所有主流浏览器中都可以使用,或者他们不会使用它,但它看起来并不习惯。更重要的是,它是否有效?
注意:我在问题中使用了“块级元素”一词(每个人都理解),但正如MDN 文档指出的那样:
在 4.01 之前的 HTML 规范中使用了块级元素与内联元素的区别。在 HTML5 中,这种二元区别被一组更复杂的内容类别所取代。而“inline”类别大致对应于 phrasing content的类别,“block-level”类别并不直接对应任何HTML5内容类别,而是“block-level”和“inline”元素组合在一起对应流HTML5 中的内容 。