是(非

W3C验证器不喜欢非空元素上的自闭标记(以“ /> ”结尾的标记)。 (Void元素是那些可能不会包含任何内容的元素。)它们在HTML5中仍然有效吗?

可接受的空元素的一些例子:

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

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

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

注意: W3C验证器实际上接受无效自闭标签:作者最初由于简单的错字( >而不是/> )而存在问题。 但是,一般而言,自闭标签在HTML5中不是100%有效,并且答案详细讨论了各种HTML风格的自闭标签问题。


  • HTML 4中<foo / (yes,no > )意味着<foo> (这导致<br />含义为<br>> (即<br>&gt; )和<title/hello/含义<title>hello</title> )。 浏览器在支持这方面做得很差,规范建议作者避免使用这种语法。

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

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

  • 在被指定为空元素的HTML元素(基本上是“HTML5之前存在且被禁止有任何内容的元素”)时,简单禁止结束标记。 开始标签末尾的斜线是允许的,但没有意义。 它仅仅是人们使用的语法糖(和语法荧光笔),它们会沉迷于XML。
  • 在其他HTML元素上,斜杠是一个错误,但错误恢复将导致浏览器忽略它并将该标记视为常规开始标记。 这通常会以缺少结束标签结束,导致后续元素成为孩子而不是兄弟姐妹。
  • 外部元素(从SVG等XML应用程序导入)将其视为自闭句法。

  • 正如Nikita Skvortsov指出的那样,一个自我关闭的div将不会被验证。 这是因为一个div是一个正常的元素 ,而不是一个无效的元素 。 根据HTML5规范,不能有任何内容的标签(称为空元素 )可以自闭合*。 这包括以下标签:

    area, base, br, col, embed, hr, img, input, 
    keygen, link, meta, param, source, track, wbr
    

    然而,“/”在上面的标签中是完全可选的,所以<img/><img>没有区别,但是<img></img>是无效的。

    *注: 外国元素也可以自动关闭,但我认为这不在这个答案的范围内。


    实际上,在HTML中使用自闭标签应该像您期望的那样工作。 但是如果您担心编写有效的HTML5,您应该了解如何使用这些标记在您可以使用的两种不同的两种语法形式中运行。 HTML5定义了一个HTML语法和一个XHTML语法,它们是相似的,但不相同。 使用哪一个取决于Web服务器发送的媒体类型。

    更可能的是,您的页面将作为text/html ,它遵循更宽松的HTML语法。 在这些情况下,HTML5允许某些开始标签在终止前具有可选/。 在这些情况下,/是可选的并且被忽略,所以<hr><hr />是相同的。 HTML规范称这些“void元素”,并给出了有效的列表。 严格地说,可选项/只在这些void元素的开始标记中有效; 例如, <br /><hr />是有效的HTML5,但<p />不是。

    HTML5规范明确区分了HTML作者和网络浏览器开发者的正确之处,第二组需要接受各种无效的“传统”语法。 在这种情况下,这意味着符合HTML5的浏览器将接受非法的自封闭标签,如<p /> ,并按照您的预期呈现它们。 但对于作者来说,该页面不会是有效的HTML5。 (更重要的是,使用这种非法语法得到的DOM树可能会被严重搞砸;例如,自封闭的<span />标签往往会让事情变得很糟糕)。

    (在您的服务器知道如何将XHTML文件作为XML MIME类型发送的特殊情况下,页面需要符合XHTML DTD和XML语法,这意味着自定义标签对于这些定义的元素是必需的。)

    链接地址: http://www.djcxy.com/p/13405.html

    上一篇: Are (non

    下一篇: Match All Occurrences of a Regex