自闭合 i html 标签是否必要?

5

我希望知道自闭合 i html 标签是不是一个不好的习惯。

我可以这样编码:

<i class="icon-calendar btn"/>

还是编码更好呢:
<i class="icon-calendar btn"></i>

似乎IE和GC都能正确解释这两个内容。谢谢。

定义“正确”。根据规范?那么是的,它们都正确解释了 - 第一个带有/>的应该被视为HTML标记混乱中未关闭的开放标记。 - BoltClock
哪种文档类型?XHTML?HTML? - Fabian Schmengler
1
为什么要使用<I>标签作为图标呢?请参考http://www.w3.org/International/questions/qa-b-and-i-tags了解何时使用和不使用该标签。建议使用`<img><span>`代替。 - Euro Micelli
3个回答

5

在XHTML中,<i class="icon-calendar btn"/>是一个闭合标签(同时也是一个开放标签)。 - Jukka K. Korpela
1
但是在 <i> 标签中无效。 - John Conde
这是有效的;这就是为什么XHTML 1.0附录C说当兼容性相关时应该使用它。如果这种结构已经被正式语法规则禁止,那么做出这样的建议就没有任何意义了。 - Jukka K. Korpela

5
简短的答案是:使用<i class="icon-calendar btn"></i>
在HTML4.01及以下版本中,<i class="icon-calendar btn"/>是正式的错误语法,但浏览器忽略了多余的斜杠,将其视为起始标记。在没有结束标记的情况下,这是一种语法错误。实际效果取决于上下文和使用的样式表;块元素的结尾可能会被视为隐式关闭打开的元素,作为错误恢复的方法。
在HTML语法(HTML序列化)中,HTML5也适用相同规则。
在XHTML中,<i class="icon-calendar btn"/>是正式允许的,并且根据定义与<i class="icon-calendar btn"></i>完全相同。然而,XHTML 1.0 兼容性指南建议不要使用它:“自闭合”符号应该用于声明了EMPTY内容(即不能有任何内容的元素),并且仅用于它们。他们还建议在使用符号时,在斜杠/之前使用空格,但这几乎没有任何实际意义。
兼容性指南适用于XHTML文档被处理为有点奇怪的遗留HTML的浏览器的情况,而不是真正的XML。这是Web浏览器通常所做的。另一方面,关于Web浏览器,使用XHTML则相当无意义,因此最好避免所有“自闭合”的东西,这只会让人们感到困惑。

在 yii 2.0.49 项目中工作,自闭合的 <i/> 标签破坏了模板,使用 <i></i> 修复了它。 - undefined

1
大多数HTML标签都是必须的。 就像 标签必须以结束, 和 也是如此。 如果您不确定是否需要关闭标签,我建议您将其关闭。 :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接