1. 一个ASCII字符串 “<!DOCTYPE” ,大小写不敏感
  2. 一个或多个空白字符
  3. 一个ASCII字符串”html”,大小写不敏感
  4. 一个可选的历史遗留的DOCTYPE字符串 (DOCTYPE legacy string),或者一个可选的已过时但被允许的DOCTYPE字符串 () 字符串
  5. 一个或多个空白字符
  6. 一个编码为 U+003E 的字符 “>”

HTML文件必须加上 DOCTYPE 声明,并统一使用 HTML5 的文档声明:

更多关于 DOCTYPE声明

Lang属性的取值应该遵循互联网工程任务组—IETF(The Internet Engineering Task Force)制定的关于语言标签的文档 BCP 47 - Tags for Identifying Languages

团队约定

推荐使用属性值 (简体, 中国大陆),但是考虑浏览器和操作系统的兼容性,目前仍然使用 zh-CN 属性值

  1. <html lang="zh-CN">

更多地区语言参考:

  1. zh-SG 中文 (简体, 新加坡) 对应 cmn-Hans-SG 普通话 (简体, 新加坡)
  2. zh-HK 中文 (繁体, 香港) 对应 cmn-Hant-HK 普通话 (繁体, 香港)
  3. zh-MO 中文 (繁体, 澳门) 对应 cmn-Hant-MO 普通话 (繁体, 澳门)
  4. zh-TW 中文 (繁体, 台湾) 对应 cmn-Hant-TW 普通话 (繁体, 台湾)

已废弃不推荐使用的 Languages Tags

以下写法已于 2009 年废弃,请勿使用(cmn、wuu、yue、gan 等已由 2005 年的 extlang 升级到 2009 年的 language):

    以下写法已于 2009 年废弃,不推荐使用:

    1. zh-Hans, zh-Hans-CN, zh-Hans-SG, zh-Hans-HK, zh-Hans-MO, zh-Hans-TW,
    2. zh-Hant, zh-Hant-CN, zh-Hant-SG, zh-Hant-HK, zh-Hant-MO, zh-Hant-TW

    更多已废弃 Languages Tags 参考 里面的 “Type: redundant“”

    更多关于 Languages Tags :

    网页头部的声明应该是用 lang=”zh” 还是 lang=”zh-cn”?

    因为 ISO-8859 中字符集大小是有限的,且在多语言环境中不兼容,所以 Unicode 联盟开发了 Unicode 标准。

    Unicode 标准覆盖了(几乎)所有的字符、标点符号和符号。

    Unicode 使文本的处理、存储和运输,独立于平台和语言。

    HTML-5 中默认的字符编码是 UTF-8

    团队约定

    一般情况下统一使用 “UTF-8” 编码

    1. <meta charset="UTF-8">

    由于历史原因,有些业务可能会使用 “GBK” 编码

    1. <meta charset="GBK">

    请尽量统一写成标准的 “UTF-8”,不要写成 “utf-8” 或 “utf8” 或 “UTF8”。根据 IETF对UTF-8的定义,其编码标准的写法是 “UTF-8”;而 UTF8 或 utf8 的写法只是出现在某些编程系统中,如 .NET framework 的类 System.Text.Encoding 中的一个属性名就叫 UTF8。

    更多关于

    UTF-8写法: UTF8 or UTF-8?

    GBK:

    Charset :character-encoding-declaration

    HTML元素共有以下5种:

    • 空元素:area、base、br、col、command、embed、hr、img、input、keygen、link、meta、param、source、track、wbr
    • 原始文本元素:script、style
    • RCDATA元素:textarea、title
    • 外来元素:来自MathML命名空间和SVG命名空间的元素。
    • 常规元素:其他HTML允许的元素都称为常规元素。

    元素标签的闭合应遵循以下原则:

    • 原始文本元素、RCDATA元素以及常规元素都有一个开始标签来表示开始,一个结束标签来表示结束。
    • ,如果规定标签不能被省略,那么就绝对不能省略它。
    • 空元素只有一个开始标签,且不能为空元素设置结束标签。
    • 外来元素可以有一个开始标签和配对的结束标签,或者只有一个自闭合的开始标签,且后者情况下该元素不能有结束标签。

    为了能让浏览器更好的解析代码以及能让代码具有更好的可读性,有如下约定:

    • 所有具有开始标签和结束标签的元素都要写上起止标签,某些允许省略开始标签或和束标签的元素亦都要写上。
    • 空元素标签都不加 “/” 字符

    推荐:

    1. <div>
    2. <h1>我是h1标题</h1>
    3. <p>我是一段文字,我有始有终,浏览器能正确解析</p>
    4. </div>
    5. <br>

    不推荐:

    更多关于元素及标签关闭:#Elements

    HTML代码大小写

    HTML标签名、类名、标签属性和大部分属性值统一用小写

    推荐:

    1. <div class="demo"></div>

    不推荐:

    1. <div class="DEMO"></div>
    2. <DIV CLASS="DEMO"></DIV>

    HTML文本、CDATA、JavaScript、meta标签某些属性等内容可大小写混合

    1. <!-- 优先使用 IE 最新版本和 Chrome Frame -->
    2. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
    3. <!-- HTML文本内容 -->
    4. <h1>I AM WHAT I AM </h1>
    5. <!-- JavaScript 内容 -->
    6. <script type="text/javascript">
    7. var demoName = 'demoName';
    8. ...
    9. </script>
    10. <!-- CDATA 内容 -->
    11. <script type="text/javascript"><![CDATA[
    12. ...
    13. ]]></script>

    类型属性

    不需要为 CSS、JS 指定类型属性,HTML5 中默认已包含

    1. <link rel="stylesheet" href="" >
    2. <script src=""></script>

    不推荐:

    1. <link rel="stylesheet" type="text/css" href="" >
    2. <script type="text/javascript" src="" ></script>

    元素属性

    • 元素属性值使用双引号语法
    • 元素属性值可以写上的都写上

    推荐:

    1. <input type="text">
    2. <input type="radio" name="name" checked="checked" >

    不推荐:

    1. <input type=text>
    2. <input type='text'>

    更多关于元素属性:#Attributes

    文本可以和字符引用混合出现。这种方法可以用来转义在文本中不能合法出现的字符。

    在 HTML 中不能使用小于号 “<” 和大于号 “>”特殊字符,浏览器会将它们作为标签解析,若要正确显示,在 HTML 源代码中使用字符实体

    推荐:

    不推荐:

    1. <a href="#">more>></a>

    更多关于符号引用:

    代码缩进

    统一使用四个空格进行代码缩进,使得各编辑器表现一致(各编辑器有相关配置)

    1. <div class="jdc">
    2. <a href="#"></a>
    3. </div>

    纯数字输入框

    使用 type="tel" 而不是 type="number"

    1. <input type="tel">

    代码嵌套

    元素嵌套规范,每个块状元素独立一行,内联元素可选

    推荐:

    1. <div>
    2. <h1></h1>
    3. <p></p>
    4. </div>
    5. <p><span></span><span></span></p>

    不推荐:

    1. <div>
    2. <h1></h1><p></p>
    3. </div>
    4. <p>
    5. <span></span>
    6. <span></span>
    7. </p>

    段落元素与标题元素只能嵌套内联元素

    推荐:

    1. <h1><span></span></h1>
    2. <p><span></span><span></span></p>

    不推荐:

    1. <p><div></div><div></div></p>