whuhacker
V2EX  ›  HTML

HTML5 居然规定好多标签可以不闭合,简直颠覆三观

  •  
  •   whuhacker ·
    whuhacker · Aug 22, 2014 · 15515 views
    This topic created in 4457 days ago, the information mentioned may be changed or developed.
    前几天看到讨论说百度首页没有 </html> 结束标签,还觉得挺奇葩的。今天看到 [Google HTML/CSS 编码规范](http://google-styleguide.googlecode.com/svn/trunk/htmlcssguide.xml?showone=Optional_Tags#Optional_Tags) 里面有提到,才发现原来 HTML5 的好多标签已经可以不用闭合了。。。

    ```html
    <ul>
    <li>Moe
    <li>Larry
    <li>Curly
    </ul>
    ```

    ```html
    <table>
    <thead>
    <tr>
    <th scope="col">Income
    <th scope="col">Taxes
    <tbody>
    <tr>
    <td>$ 5.00
    <td>$ 4.50
    </table>
    ```

    上面都是正确的写法,强迫症患者颠覆三观,节操尽毁……
    24 replies  •  2014-08-23 06:17:42 +08:00
    whuhacker
    whuhacker
    OP
    Aug 22, 2014
    1
    HTML 节点都不支持 markdown 吗? @livid
    582033
    582033
    Aug 22, 2014
    2
    ```html
    <ul>
    <li>Moe
    <li>Larry
    <li>Curly
    </ul>
    ```

    ```html
    <table>
    <thead>
    <tr>
    <th scope="col">Income
    <th scope="col">Taxes
    <tbody>
    <tr>
    <td>$ 5.00
    <td>$ 4.50
    </table>
    ```
    582033
    582033
    Aug 22, 2014
    3
    <ul></ul>
    #是不是格式不对?
    kfll
    kfll
    Aug 22, 2014
    4


    颠覆你的第四第五观了么,
    victor
    victor
    Aug 22, 2014
    5
    不闭合更好
    kokdemo
    kokdemo
    Aug 22, 2014
    6
    其实不闭合看起来更语义一些……

    当然我指的是那种排版上的li,td,tr这种

    涉及到嵌套上的必须得闭合
    ChiangDi
    ChiangDi
    Aug 22, 2014
    7
    原来谷歌也推荐省略,简直爽歪歪。
    canesten
    canesten
    Aug 22, 2014
    8
    Lisp党可能看到这里已经摔门而去
    kmvan
    kmvan
    Aug 22, 2014 via Android
    9
    简直不可理喻,这……
    cherrychocolate
    cherrychocolate
    Aug 22, 2014 via iPhone
    10
    看个人习惯了
    ChiangDi
    ChiangDi
    Aug 22, 2014
    11
    想了一下觉得不是太好。
    一些是可以不用闭合的,一些有必须要闭合,这样还得费事去记哪些可以不闭合。
    akfish
    akfish
    Aug 22, 2014
    12
    因为HTML5标准明确表明不是基于SGML的了,当然可以不闭合。

    省略了其实比较好,不然忘记闭合一个标签,整个页面的排版都被艹了。
    sandtears
    sandtears
    Aug 22, 2014
    13
    作为一个非专业人士,我觉得还是统一点好,对于闭合或者不闭合都行的,我一律选择闭合。
    不然还得记哪些不需要闭合,不如全都闭合,反正不会出错。
    wsph123
    wsph123
    Aug 22, 2014
    14
    不闭合没问题就不闭合嘛
    imn1
    imn1
    Aug 22, 2014
    15
    记忆中这不是 html5 的规定,而是当初提出 html5 时,各大浏览器商的共识是浏览器可以容不规范的html,意思就是错误的html也能显示出来

    回顾 html5 的诞生史,这点是浏览器商抵制 xhtml,绕开 w3c 自行商议 html5 标准的重要原因之一
    其实 html4 很多标签不闭合也没问题的,只要不歧义就不影响浏览器解析,我以前见没有</html>的多了
    但 xhtml 是继承 xml 标准的,错一个字母都造成整个网页不能显示,这是各大浏览器商强烈反对的理由,认为标准太严格造成网站开发成本高,用户体验差

    html5 是 google 带头主导制定的,所以 google 浏览器本身就做了很多兼容工作
    jsonline
    jsonline
    Aug 22, 2014
    16
    不闭合多好。
    g0thic
    g0thic
    Aug 22, 2014
    17
    html5 是向下兼容的
    luikore
    luikore
    Aug 22, 2014
    18
    不闭合的好, 给低级爬虫加点难度
    Sivan
    Sivan
    Aug 22, 2014
    19
    html 一直就可以,是 xhtml 才规定必须闭合的。
    Tonni
    Tonni
    Aug 22, 2014
    20
    比较反感一些现代浏览器会自动脑部没有闭合的标签,这个问题在排查问题时非常难以察觉
    Tonni
    Tonni
    Aug 22, 2014
    21
    HTML可以用JADE预编译器,层级结构做的很清晰
    jakwings
    jakwings
    Aug 22, 2014
    22
    玩死普通爬虫。不过会不会把代码自动排版也玩死了(例如未定义 tag),干脆顺便放弃代码高亮。

    反正我是没兴趣背那么多开闭规则,一会开一会不开,头都晕。
    keepzero
    keepzero
    Aug 23, 2014
    23
    所以 html5 不叫做 xhtml2.0 之类的
    wwqgtxx
    wwqgtxx
    Aug 23, 2014 via Android
    24
    不闭合可以节约不少kb的流量
    虽然表面上看不出来,但对于google这种大网站,就算有gzip,那些个闭合标签也会大大增加谷歌服务器的网络带宽。而且服务器是按照流量计费的,能省就省呗
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4889 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 84ms · UTC 07:17 · PVG 15:17 · LAX 23:17 · JFK 02:17
    ♥ Do have faith in what you're doing.