代码之家  ›  专栏  ›  技术社区  ›  Edward Tanguay

为什么要用<div class=“clear”></div>而不是<div class=“clear”/>?

  •  11
  • Edward Tanguay  · 技术社区  · 14 年前

    我刚刚意识到:

    <div class="clear"/>
    

    <div class="clear"></div> 
    

    工作正常。

    有人能解释一下吗?

    div.clear {
        clear:both;
    }
    
    3 回复  |  直到 14 年前
        1
  •  25
  •   bobince    14 年前
    <div class="clear"/>
    

    如果您将XHTML页面作为 text/html ,浏览器并没有使用真正的XML解析器读取它。他们使用的是一个普通的老式HTML解析器,它不知道自动关闭标记。对于HTML4解析器来说,这只是一个开放的标签,里面有一些奇怪的标点符号。(如果浏览器解析器真的使用了SGML的规则,那将是另一件完全不受欢迎的事情,但它们没有。)

    在IE9普及之前,我们将不能像 application/xhtml+xml 总是 对声明为具有 EMPTY 内容模型。( img br 等)

    关于编写与HTML兼容的XHTML,有更多的规则要做,但这是最重要的一条。 Appendix C XHTML1.0标准中有一个差异列表;它看起来有点复杂,但是很多点都是你无论如何都不想使用的特性,有些点现在已经无关紧要了,因为它们在谈论像Netscape4这样的古老浏览器。把空间放在前面的做法 /> 例如,不再是任何常用的东西所必需的。

        2
  •  12
  •   Donut    14 年前

    根据 HTML 4.01 spec Section 7.5.4 ,和 <div> 标记需要结束标记。

        3
  •  2
  •   Edward Tanguay    12 年前
    <div class="clear"/>  
    

    此语法不是有效的HTML/XHTML。任何标签 可以 包含内容 不能 自动关闭(即使标签中不需要任何内容)。因此,包含div、span、p等标记的内容永远不能是自动关闭标记。相反,不能包含以下内容的标记 <br />

    推荐文章