ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ## 标签 * 自闭合(self-closing)标签,无需闭合 ( 例如: imginputbrhr 等 ); * 可选的闭合标签(closing tag),需闭合 ( 例如:</li> 或 </body> ); * 尽量减少标签数量; ~~~ <img src="images/google.png" alt="Google"> <input type="text" name="title"> <ul> <li>Style</li> <li>Guide</li> </ul> <!-- Not recommended --> <span class="avatar"> <img src="..."> </span> <!-- Recommended --> <img class="avatar" src="..."> ~~~ ## Class 与 ID * class 应以功能或内容命名,不以表现形式命名; * class 与 id 单词字母小写,多个单词组成时,采用中划线-分隔; * 使用唯一的 id 作为 Javascript hook, 同时避免创建无样式信息的 class; ~~~ <!-- Not recommended --> <div class="j-hook left contentWrapper"></div> <!-- Recommended --> <div id="j-hook" class="sidebar content-wrapper"></div> ~~~ ## 属性顺序 HTML 属性应该按照特定的顺序出现以保证易读性。 * id * class * name * data-xxx * src, for, type, href * title, alt * aria-xxx, role ~~~ <a id="..." class="..." data-modal="toggle" href="###"></a> <input class="form-control" type="text"> <img src="..." alt="..."> ~~~ ## 引号 属性的定义,统一使用双引号。 ~~~ <!-- Not recommended --> <span id='j-hook' class=text>Google</span> <!-- Recommended --> <span id="j-hook" class="text">Google</span> ~~~ ## 嵌套 a 不允许嵌套 div这种约束属于语义嵌套约束,与之区别的约束还有严格嵌套约束,比如不允许嵌套。 严格嵌套约束在所有的浏览器下都不被允许;而语义嵌套约束,浏览器大多会容错处理,生成的文档树可能相互不太一样。 #### 语义嵌套约束 * `<li> 用于 <ul> 或 <ol> 下;` * `<dd>, <dt> 用于 <dl> 下;` * `<thead>, <tbody>, <tfoot>, <tr>, <td> 用于 <table> 下;` #### 严格嵌套约束 * inline-Level 元素,仅可以包含文本或其它 inline-Level 元素; * `<a>里不可以嵌套交互式元素<a>、<button>、<select>等;` * `<p>里不可以嵌套块级元素<div>、<h1>~<h6>、<p>、<ul>/<ol>/<li>、<dl>/<dt>/<dd>、<form>等。` 更多详情,参考[WEB标准系列-HTML元素嵌套](http://www.smallni.com/element-nesting/) ## 布尔值属性 HTML5 规范中 disabled、checked、selected 等属性不用设置值。 ~~~ <input type="text" disabled> <input type="checkbox" value="1" checked> <select> <option value="1" selected>1</option> </select> ~~~ ## 格式化规则 在每一个块状元素,列表元素和表格元素后,加上一新空白行,并对其子孙元素进行缩进。内联元素写在一行内,块状元素还有列表和表格要另起一行。 ~~~ <!-- Recommended --> <blockquote> <p><em>Space</em>, the final frontier.</p> </blockquote> <ul> <li>Moe</li> <li>Larry</li> <li>Curly</li> </ul> <table> <thead> <tr> <th scope="col">Income</th> <th scope="col">Taxes</th> </tr> </thead> <tbody> <tr> <td>$ 5.00</td> <td>$ 4.50</td> </tr> </tbody> </table> ~~~