介绍
不洗碗工作室 HTML 编码规范
代码风格
缩进与换行
- 使用
4
个空格作为一个缩进层级,不使用两个空格或tab
字符(可在代码编辑器中设置)。 - 每行不超过
120
个字符。
命名
class
、id
命名字母全小写,单词以-
分隔。class
、id
命名有意义,需代表相应模块部件的内容或功能,不以样式信息进行命名。1
2
3
4<!-- good -->
<div class="sidebar"></div>
<!-- bad -->
<div class="left"></div>元素
id
保证页面唯一,在不确定情况下,换成class
。不允许
class
只用于让JavaScript
选择某些元素,此时可使用id
。class
具有明确的语意和样式,否则易导致CSS class
泛滥。同一页面,避免使用相同的
name
和id
。属性名小写
1
2
3
4<!-- good -->
<table cellspacing="0">...</table>
<!-- bad -->
<table cellSpacing="0">...</table>无需自闭和标签,不允许自闭和。常见的有
input
、br
、img
、hr
等。1
2
3
4<!-- good -->
<input type="text" name="title">
<!-- bad -->
<input type="text" name="title" />HTML5
中规定允许省略的闭合标签,不允许省略,防止严苛环境中出现错误1
2
3
4
5
6
7
8
9
10
11<!-- good -->
<ul>
<li>first</li>
<li>second</li>
</ul>
<!-- bad -->
<ul>
<li>first
<li>second
</ul>标签使用符合标签嵌套规则,如
div
不得置于p
中,tbody
必须置于table
中。详情上网查询。
书写
HTML 标签使用遵循标签的语义。下面是常见的标签语义:
- p - 段落
- h1,h2,h3,h4,h5,h6 - 层级标题
- strong,em - 强调
- ins - 插入
- del - 删除
- abbr - 缩写
- code - 代码标识
- cite - 引述来源作品的标题
- q - 引用
- blockquote - 一段或长篇引用
- ul - 无序列表
- ol - 有序列表
- dl,dt,dd - 定义列表
标签的使用尽量简洁,减少不必要的标签。
1
2
3
4
5
6
7<!-- good -->
<img class="avatar" src="image.png">
<!-- bad -->
<span class="avatar">
<img src="image.png">
</span>属性值用双引号包围,不使用单引号。
布尔类型的属性,建议不添加属性值
1
2<input type="text" disabled>
<input type="checkbox" value="1" checked>引入
CSS
时必须指明 rel=”stylesheet”建议引入
CSS
和JavaScript
时不指明type
属性。页面必须包含
title
标签声明标题。title
必须作为head
的直接子元素,并紧随charset
声明之后。title
中如果包含ASCII
之外的字符,浏览器需要知道字符编码类型才能进行解码,否则可能导致乱码。保证
favicon
可访问。禁止
img
的src
取值为空。延迟加载的图片也要增加默认的src
。src
取值为空,会导致部分浏览器重新加载一次当前页面使用 button 元素时必须指明
type
属性值。
其他
DOCTYPE
使用HTML5
的doctype
来启用标准模式,建议使用大写的DOCTYPE
。在
html
标签上设置正确的lang
属性,有助于提高页面的可访问性。页面必须使用精简形式,明确指定字符编码。指定字符编码的
meta
必须是head
的第一个直接子元素。1
2
3
4
5
6
7
8
9<html>
<head>
<meta charset="UTF-8">
......
</head>
<body>
......
</body>
</html>在
head
中引入页面需要的所有CSS
资源。JavaScript
应当放在页面末尾,或采用异步加载。避免为
img
添加不必要的title
属性。建议有下载需求的图片采用
img
标签实现,无下载需求的图片采用CSS
背景图实现。