当前位置: 首页 > 面试题库 >

(非无效)自动关闭标记在HTML5中有效吗?

鲜于意
2023-03-14
问题内容

W3C验证不喜欢自闭合标签(那些一端与“/>上“)非空元素。(无效元素是可能永远不包含任何内容的元素。)它们在HTML5中仍然有效吗?

可接受的 void元素的一些示例:

<br />
<img src="" />
<input type="text" name="username" />

被拒绝的 非空元素的一些示例:

<div id="myDiv" />
<span id="mySpan" />
<textarea id="someTextMessage" />

注意: W3C验证器实际上接受无效的自动关闭标签:最初由于简单的错字\>不是/>), 作者遇到了问题
但是,自关闭标签在HTML5中通常不是100%有效的,答案详细说明了各种HTML风格的自关闭标签。


问题答案:
  • HTML 4中<foo/(是,完全没有>)意味着<foo>(导致<br/>含义<br>>(即<br>&gt;)和<title/hello/意义<title>hello</title>)。这是一条 SGML规则,浏览器在支持方面做得很差,并且该规范建议作者避免使用语法。

  • XHTML中<foo />是指<foo></foo>。这是一条适用于所有XML文档的 XML 规则。也就是说,XHT​​ML通常用作text/html(至少在历史上)由浏览器使用与用作文档的解析器不同的解析器来处理的HTML application/xhtml+xml。W3C提供了XHTML遵循的[兼容性指南text/html。(本质上:仅当元素定义为EMPTY时才使用自闭标签语法(并且HTML规范中禁止使用结束标签))。

  • HTML5中 ,的含义<foo /> 取决于元素的类型。

    • 在被指定为 _void元素的HTML元素上(本质上是“在HTML5之前存在并且被禁止包含任何内容的元素”),最终标签被简单地禁止了。在开始标记末尾的斜杠是允许的,但没有任何意义。对于仅沉迷于XML的人员(和语法突出显示)来说,它只是语法糖。
    • 在其他HTML元素上,斜杠是一个错误,但是错误恢复将导致浏览器将其忽略,并将该标记视为常规的开始标记。这通常会导致缺少结束标签,导致后续元素成为子元素而不是兄弟元素。
    • 外部元素(从SVG等XML应用程序导入)将其视为自动关闭语法。


 类似资料: