通用约定

    标签

    • 自闭合(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 等属性不用设置值。