首页 文章

XHTML中有哪些有效的自闭元素(由主流浏览器实现)?

提问于
浏览
181

XHTML中的所有有效自闭元素(例如
)是什么(由主要浏览器实现)?

我知道XHTML在技术上允许任何元素自我关闭,但我正在寻找所有主要浏览器支持的那些元素的列表 . 有关由自关闭元素(如<div />)引起的某些问题的示例,请参阅http://dusan.fora.si/blog/self-closing-tags .

13 回答

  • 5

    <meta><link> 怎么样?他们为什么不在名单上?

    快速经验法则,不要自行关闭任何有内容的元素,因为它肯定会迟早引起浏览器问题 .

    那些自然闭合的,如 <br><img> ,应该是显而易见的 . 那些没有自我关闭的人!

  • 10

    每个支持XHTML的浏览器(Firefox,Opera,Safari,IE9)都支持 every element 上的自动关闭语法 .

    <div/><script/><br></br> 都应该工作得很好 . 如果他们不这样做,那么你有不恰当添加的XHTML DOCTYPE的HTML .

    DOCTYPE does not change how document is interpreted. Only MIME type does .

    W3C decision about ignoring DOCTYPE

    HTML WG讨论了这个问题:目的是允许旧的(仅限HTML)浏览器遵循指南接受XHTML 1.0文档,并将其作为text / html提供 . 因此,作为text / html的文档应该被视为HTML而不是XHTML .

    这是一个非常常见的陷阱,因为W3C Validator在很大程度上忽略了这个规则,但浏览器却虔诚地遵循它 . 从WebKit博客阅读Understanding HTML, XML and XHTML

    事实上,互联网上绝大多数所谓的XHTML文档都是以text / html的形式提供的 . 这意味着它们根本不是XHTML,但实际上是HTML解析器的错误处理所带来的无效HTML . 网上所有那些“有效的XHTML 1.0!”链接都说“无效的HTML 4.01!” .


    要使用XHTML的DOCTYPE测试您是否拥有真正的XHTML或无效HTML,请将其放入您的文档中:

    <span style="color:green"><span style="color:red"/> 
     If it's red, it's HTML. Green is XHTML.
    </span>
    

    它验证,并在真正的XHTML中它完美地工作(参见:1 vs 2) . 如果您不知道如何设置MIME类型,请通过XHTML proxy打开您的页面 .

    另一种检查方法是在Firefox中查看源代码 . 当它们无效时,它会突出显示红色的斜线 .

    在HTML5 / XHTML5中,这还没有't changed, and the distinction is even clearer, because you don'甚至还有 DOCTYPE . Content-Type 是国王 .


    为了记录,XHTML规范允许任何元素通过使XHTML成为XML application来自动关闭:[强调我的]

    空元素标签可用于任何没有内容的元素,无论是否使用关键字EMPTY声明它 .

    它也明确地显示在_995197中:

    空元素必须具有结束标记,或者开始标记必须以/>结尾 . 例如,
    或<hr> </ hr>

  • 4

    关于这个主题要非常小心的一个要素是 <script >元素 . 如果您有外部源文件,当您自行关闭它时会导致问题 . 试试吧:

    <!-- this will not consistently work in all browsers! -->
    <script type="text/javascript" src="external.js" />
    

    这可以在Firefox中使用,但至少在IE6中有效 . 我知道,因为当我过度热心地关闭我看到的每一个元素时,我遇到了这个;-)

  • 40

    自闭语法适用于application / xhtml xml中的所有元素 . text / html中的任何元素都不支持它,但HTML4中“空”或HTML5中“void”的元素无论如何都不会使用结束标记,所以如果你在它们上面放一个斜杠就好像支持自关闭语法 .

  • 35

    W3 Schools reference site

    <area />
    <base />
    <basefont />
    
    <hr /> <input /> <img /> <link /> <meta />
  • 28

    更好的问题是:即使在HTML模式下哪些标签也可以自动关闭而不影响代码?答案:只有那些内容空洞的内容(无效) . 根据HTML specs,以下要素无效:

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

    较旧版本的规范也列出了 command . 此外,根据各种来源,以下过时或非标准标签无效:

    basefont, bgsound, frame, isindex

  • 2

    希望这有助于某人:

    <base />
    <basefont />
    <frame />
    <link />
    <meta />
    
    <area />
    
    <col /> <hr /> <img /> <input /> <param />
  • 34

    我最后一次检查,以下是HTML5中列出的空/空元素 .

    对作者有效:area,base,br,col,command,embed,eventsource,hr,img,input,link,meta,param,source

    作者无效:basefont,bgsound,frame,spacer,wbr

    除了HTML5中的新功能之外,还应该让您了解在将XHTML作为text / html提供时可能支持的内容 . (只需通过检查生成的DOM来测试它们 . )

    至于XHTML作为application / xhtml xml(使其成为XML),XML规则适用,任何元素都可以为空(即使XHTML DTD无法表达这一点) .

  • 175

    你应该看看xHTML DTDs,它们都列出了 . 以下是对所有主要内容的快速回顾:


    <hr /> <img /> <input />
  • 2

    它们're called 995214 elements in HTML 5. They'重新列在official W3 spec中 .

    void元素是一个元素,其内容模型在任何情况下都不允许它拥有内容 .

    截至2013年4月,它们是:

    区域,基地,br,col,命令,嵌入,hr,img,输入,keygen,链接,元,参数,源,跟踪,wbr

    截至2018年12月(HTML 5.2),它们是:

    area,base,br,col,embed,hr,img,输入,链接,元,参数,源,跟踪,wbr

  • 4

    IE的另一个自闭标签问题是title元素 . 当IE(只是在IE7中尝试过)看到这一点时,它会向用户显示一个空白页面 . 然而,你“查看源”,一切都在那里 .

    <title/>
    

    我最初在XSLT生成自闭标记时看到了这个 .

  • -2

    我不会试图对此进行过多的讨论,特别是因为我编写的大多数页面都是生成的,或者标签确实有内容 . 只有两个在让它们自我关闭时给我带来麻烦的是:

    <title/>

    为此,我简单地使用了一个单独的结束标记,因为一旦它出现在 <head></head> 中,它无论如何都不会使你的代码变得更加混乱 .

    <script/>

    这是我最近遇到问题的最大问题 . 多年来,当脚本来自外部源时,我总是使用自动关闭的 <script/> 标签 . 但是我最近开始收到关于null表单的JavaScript错误消息 . 经过几天的研究,我发现问题是(据说)浏览器永远不会到达 <form> 标签,因为它没有意识到这是 <script/> 标签的结尾 . 所以当我把它分成单独的 <script></script> 标签时,一切都运转了 . 为什么我在同一个浏览器上制作的不同页面有所不同,我不知道,但找到解决方案是一个很大的解脱!

  • 4

    <hr />是另一个

相关问题