是否需要编写HEAD,BODY和HTML标签?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (105)

有必要写吗<html>,,,<head> and <body>标签?

For example, I can make such a page:

<!DOCTYPE html>     
    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
    <title>Page Title</title>
    <link rel="stylesheet" type="text/css" href="css/reset.css">
    <script src="js/head_script.js"></script><!-- this script will be in head //-->


<div>Some html</div> <!-- here body starts //-->

    <script src="js/body_script.js"></script>

Firebug正确地将头部和身体分开:

W3C Validation says it's valid.

但我很少在网上看到这种做法。

有理由写这些标签吗?

提问于
用户回答回答于

Google的HTML样式指南建议省略所有可选标记。 这包括 <html><head><body><p><li>

https://google.github.io/styleguide/htmlcssguide.html#Optional_Tags

为了文件大小优化和可扫描性目的,考虑省略可选标签。HTML5规范定义了什么标签可以省略。 (这种方法可能需要一个宽限期,作为一个更宽泛的指导原则,因为它与网络开发人员通常所教的内容有很大的不同。出于一致性和简单性的原因,最好省略所有可选的标签,而不仅仅是一个选项。 <!-- Not recommended --> <!DOCTYPE html> <html> <head> <title>Spending money, spending bytes</title> </head> <body> <p>Sic.</p> </body> </html> <!-- Recommended --> <!DOCTYPE html> <title>Saving money, saving bytes</title> <p>Qed.

用户回答回答于

省略htmlheadbody 标签肯定是由HTML规范允许的。其根本原因是浏览器一直试图与现有的网页保持一致,而早期的HTML版本并没有定义这些元素。当HTML2.0 首先,它是以一种当失踪的时候推断标签的方式完成的。

我经常发现,在原型设计时,特别是在编写测​​试用例时省略标签是很方便的,因为它有助于保持关注测试的标记。推理过程应该按照您在Firebug中看到的方式创建元素,而且浏览器在这个过程中也是非常一致的。

但...

IE在这方面至少有一个已知的bug。即使IE9。假设标记是这样的:

<!DOCTYPE html>
<title>Test case</title>
<form action='#'>
   <input name="var1">
</form>

你应该(并在其他浏览器中)得到一个如下所示的DOM:

HTML
    HEAD
        TITLE
    BODY
        FORM action="#"
            INPUT name="var1"

但在IE中,你得到这个:

HTML
    HEAD
       TITLE
       FORM action="#"
           BODY
               INPUT name="var1"
    BODY

看看

这个bug似乎局限于form任何文本内容和任何body开始标签之前的开始标签。

所属标签

可能回答问题的人

  • HKC

    红客学院 · 创始人 (已认证)

    26 粉丝7 提问5 回答
  • 西风

    renzha.net · 站长 (已认证)

    9 粉丝1 提问4 回答
  • Dingda

    Dingda · 站长 (已认证)

    4 粉丝0 提问3 回答
  • 螃蟹居

    1 粉丝0 提问2 回答

扫码关注云+社区

领取腾讯云代金券