# HTML 规范
HTML 规范能够使 HTML 代码风格保持一致,使得 HTML 更容易理解和维护。
# 文档类型
<!DOCTYPE>
声明必须是 HTML 文档的第一行,位于 <html>
标签之前。推荐使用 HTML5 的文档声明:
<!DOCTYPE html>
# 页面语言
推荐使用属性值 cmn-Hans-CN
(简体, 中国大陆),但是考虑浏览器和操作系统的兼容性,目前仍然使用 zh-CN
属性值。
<html lang="zh-CN">
# 字符编码
HTML5 中的默认字符集为 UTF-8
,请使用 “UTF-8” 编码的标准写法:
<meta charset="UTF-8">
由于历史原因,有些业务可能会使用 GBK
编码。
<meta charset="GBK">
# 标签元素
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 允许的元素都称为常规元素
HTML 标签的使用应该遵循标签的语义,且要符合标签嵌套规则。
为了能让浏览器更好的解析代码以及让代码具有更好的可读性,HTML 元素标签的闭合应遵循以下原则:
- 空元素只有一个开始标签,且不能为空元素设置结束标签
- 某些元素的开始和结束标签是可以省略的,建议每个元素都要显式添加标签
- 外来元素可以有一个开始标签和配对的结束标签,或者只有一个自闭合的开始标签
- 原始文本元素、RCDATA 元素以及常规元素都有一个开始标签来表示开始,一个结束标签来表示结束
# 代码注释
单行注释内容前后各一个空格字符,注释位于要注释代码的上面。
<!-- 注释内容 -->
<p>这是一个段落。</p>
多行注释第一个字符使用空格缩进,更易于阅读。
<!--
这是一段注释,
注释不会在浏览器中显示。
-->
<p>这是一个段落。</p>
模块注释用于描述模块的名称以及模块开始与结束的位置,模块与模块之间空行。
<!-- S 标题注释开始 -->
<h1>这是一个标题。</h1>
<!-- E 标题注释结束 -->
<!-- S 段落注释开始 -->
<p>这是一个段落。</p>
<!-- E 段落注释结束 -->
使用注释标签来隐藏浏览器不支持的脚本也是一个好习惯(这样就不会把脚本显示为纯文本):
<script type="text/javascript">
<!--
function displayMsg() {
alert("Hello World!")
}
//-->
</script>
注释行结尾处的两条斜杠 (
//
) 是 JavaScript 注释符号,这可以避免 JavaScript 执行-->
标签。
# 命名规范
id
必须保证页面唯一性,同时应避免使用相同的name
id
必须使用单词全字母小写,多个单词以下划线_
分割class
必须代表相应模块的功能或内容,不得以表现形式命名class
必须使用单词全字母小写,多个单词以中划线-
分割- 自定义属性必须使用
data-
前缀,属性名不应该包含任何大写字母
# 类型属性
使用简洁的语法来载入外部样式表和脚本文件,无须指明 type
属性。
<link rel="stylesheet" href="../css/bootstrap.min.css" />
<script src="../js/jquery.slim.min.js"></script>
# 元素属性
属性名必须使用小写字母,属性值必须用双引号语法。
<input type="text" />
布尔类型的属性,建议不添加属性值。
<input type="radio" checked />
# 空行和缩进
- 不要连续使用多个空行
- 为每个逻辑功能块添加空行,这样更易于阅读
- 缩进使用 4 个空格,不允许使用
tab
制表符 - 比较短的代码之间不要使用不必要的空行和缩进
# IE 兼容模式
优先使用最新版本的 IE 和 Chrome 内核。
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
# 移动端优化
在移动浏览器中使用 viewport
标签控制布局,优化页面显示效果。
<meta name="viewport" content="width=device-width,initial-scale=1" />