目录
介绍
不洗碗工作室 HTML 编码规范
代码风格
缩进与换行
- 使用
4个空格作为一个缩进层级,不使用两个空格或tab字符(可在代码编辑器中设置)。 - 每行不超过
120个字符。
命名
-
class、id命名字母全小写,单词以-分隔。 -
class、id命名有意义,需代表相应模块部件的内容或功能,不以样式信息进行命名。<!-- good --><div class="sidebar"></div><!-- bad --><div class="left"></div> -
元素
id保证页面唯一,在不确定情况下,换成class。 -
不允许
class只用于让JavaScript选择某些元素,此时可使用id。class具有明确的语意和样式,否则易导致CSS class泛滥。 -
同一页面,避免使用相同的
name和id。 -
属性名小写
<!-- good --><table cellspacing="0">...</table><!-- bad --><table cellSpacing="0">...</table> -
无需自闭和标签,不允许自闭和。常见的有
input、br、img、hr等。<!-- good --><input type="text" name="title"><!-- bad --><input type="text" name="title" /> -
HTML5中规定允许省略的闭合标签,不允许省略,防止严苛环境中出现错误<!-- 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 - 定义列表
-
标签的使用尽量简洁,减少不必要的标签。
<!-- good --><img class="avatar" src="image.png"><!-- bad --><span class="avatar"><img src="image.png"></span> -
属性值用双引号包围,不使用单引号。
-
布尔类型的属性,建议不添加属性值
<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的第一个直接子元素。<html><head><meta charset="UTF-8">......</head><body>......</body></html> -
在
head中引入页面需要的所有CSS资源。 -
JavaScript应当放在页面末尾,或采用异步加载。 -
避免为
img添加不必要的title属性。 -
建议有下载需求的图片采用
img标签实现,无下载需求的图片采用CSS背景图实现。