通用约定
标签
- 自闭合(self-closing)标签,无需闭合 ( 例如:
input
br
hr
等 ); - 尽量减少标签数量;
Class 与 ID
- class 应以功能或内容命名,不以表现形式命名;
- class 与 id 单词字母小写,多个单词组成时,采用中划线
-
分隔; - 使用唯一的 id 作为 Javascript hook, 同时避免创建无样式信息的 class;
属性顺序
- id
- class
- name
- src, for, type, href
- title, alt
- aria-xxx, role
引号
属性的定义,统一使用双引号。
嵌套
严格嵌套约束在所有的浏览器下都不被允许;而语义嵌套约束,浏览器大多会容错处理,生成的文档树可能相互不太一样。
<li>
用于<ul>
或 下;<dd>
,<dt>
用于<dl>
下;<thead>
,<tbody>
,<tfoot>
,<tr>
,<td>
用于<table>
下;
严格嵌套约束
- inline-Level 元素,仅可以包含文本或其它 inline-Level 元素;
<p>
里不可以嵌套块级元素<div>
、<h1>~<h6>
、<p>
、<ul>/<ol>/<li>
、<dl>/<dt>/<dd>
、<form>
等。
布尔值属性
HTML5 规范中 disabled
、、selected
等属性不用设置值。