介绍
不洗碗工作室 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背景图实现。