1.缩进
统一两个空格缩进
2.命名规范
- class 应以功能或内容命名,不以表现形式命名;
- class 与 id 单词字母小写,多个单词组成时,采用中划线-分隔;
- 使用唯一的 id 作为 Javascript hook, 同时避免创建无样式信息的 class;
3.DOCTYPE 声明
HTML 文件必须加上 DOCTYPE 声明,并统一使用 HTML5 的文档声明:
1 <!DOCTYPE html>
4.meta 标签
- 统一使用 “UTF-8” 编码
1 <meta charset="utf-8">
- SEO 优化
1 <!-- 页面关键词 --> 2 <meta name ="keywords" content =""/> 3 <!-- 页面描述 --> 4 <meta name ="description" content =""> 5 <!-- 网页作者 --> 6 <meta name ="author" content ="">
- 优先使用 IE 最新版本和 Chrome
1 <meta http-equiv ="X-UA-Compatible" content ="IE = edge,chrome = 1">
- 为移动设备添加视口
1 <!-- device-width 是指这个设备最理想的 viewport 宽度 --> 2 <!-- initial-scale=1.0 是指初始化的时候缩放大小是1,也就是不缩放 --> 3 <!-- user-scalable=0 是指禁止用户进行缩放 --> 4 <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
- 禁止自动识别页面中有可能是电话格式的数字
1 <meta name="format-detection" content="telephone=no">
5.标签
html 标签分为以下几类:
- 自闭合标签(self-closing),无需闭合。例如:area、base、br、col、command、embed、hr、img、input、keygen、link、meta、param、source、track、wbr 等 )
- 闭合标签(closing tag),需闭合 。例如:textarea、title、h、div、span 等
普通标签使用小写,外部引入的组件标签使用大写
1 <div></div> 2 <el-button><el-button> 3 <Pagination />
- 所有具有开始标签和结束标签的元素都必须要写上起止标签,某些允许省略开始标签或和束标签的元素亦都要写上
- 自闭合标签不要加上结束标签
- 自定义标签的名字必须包含一个破折号(-),
<x-tags>
、<my-element>
和<my-awesome-app>
都是正确的名字,而<tabs>
和<foo_bar>
是不正确的。这样的限制使得 HTML 解析器可以分辨那些是标准元素,哪些是自定义元素 - 自定义标签必须写上开始标签和闭合标签
- 尽量减少标签数量
6.属性的定义,统一使用双引号。
1 <input type="text" name="title" />
7.代码嵌套
- 块元素可以包含内联元素或某些块元素,但内联元素却不能包含块元素,它只能包含其它的内联元素
- 标题和段落中不能包含块,如:h1、h2、h3、h4、h5、h6、p、dt
- 块与内联不能并列,块级元素与块级元素并列、内嵌元素与内嵌元素并列
- 有些标签是固定的嵌套规则,比如 ul 包含 li、ol 包含 li、dl 包含 dt 和 dd 等等。
8.灵活使用伪类
不要让非内容信息污染了你的 HTML,打乱了 HTML 结构。可以使用:before、:after 等伪类元素
HTML 代码
1 <!-- That is clean markup! --> 2 <span class="text-box"> 3 See the square next to me? 4 </span>
CSS 代码:
1 /* We use a :before pseudo element to solve the design problem of placing a colored square in front of the text content */ 2 .text-box:before { 3 content: ''; 4 display: inline-block; 5 1rem; 6 height: 1rem; 7 background-color: red; 8 }
9.特殊符号必须使用转义符
符号 | 描述 | 转义符 |
---|---|---|
空格 | |
|
< | 小于 | < |
> | 大于 | > |
& | 和 | & |
" | 引号 | " |
10.纯数字输入框
使用 type=“tel” 而不是 type=“number”
1 <input type="tel">
11.注释规范
单行注释
- 一般用于简单的描述,如某些状态描述、属性描述等
- 注释内容前后各一个空格字符,注释位于要注释代码的上面,单独占一行
1 <!-- Comment Text --> 2 <div>...</div>
模块注释
1 注释内容前后各一个空格字符 2 <!-- S Comment Text -->表示模块开始 3 <!-- E Comment Text -->表示模块结束,模块与模块之间相隔一行 4 模块注释内部嵌套模块注释,<!-- /Comment Text -->
1 <!-- S Comment Text A --> 2 <div class="mod_a"> 3 4 <div class="mod_b"> 5 ... 6 </div> 7 <!-- /mod_b --> 8 9 <div class="mod_c"> 10 ... 11 </div> 12 <!-- /mod_c --> 13 14 </div> 15 <!-- E Comment Text A --> 16 17 <!-- S Comment Text D --> 18 <div class="mod_d"> 19 ... 20 </div> 21 <!-- E Comment Text D -->
12.语义化
- 没有 CSS 的 HTML 是一个语义系统而不是 UI 系统
- 通常情况下,每个标签都是有语义的
- 语义化的 HTML 结构,有助于机器(搜索引擎)理解,另一方面多人协作时,能迅速了解开发者意图
- 建议页面中多使用语义化标签,而不是整个页面以 div 构成