UNPKG

@ozo/react-rock

Version:

React 移动端开发脚手架,基于CRA3,通用、开箱即用。

132 lines (92 loc) 3.3 kB
# HTML 编码规范 ## 语法 * 使用 `4` 个空格做为一个缩进层级,不允许使用 `2` 个空格或 `tab` 字符 * 在属性上,使用双引号 `""`,不要使用单引号 `''` * 属性名 / 属性值全小写,用中划线 `-` 做分隔符 * 不要在自动闭合标签结尾处使用斜线,例:`<img>` * 不要忽略可选的关闭标签,例:`</li>` 和 `</body>` * 自定义属性必须使用 `data-` 前缀 ```html <!-- good --> <body> <img src="logo.png" alt="logo"> <ul> <li class="first-child">first</li> <li data-index="2">second</li> </ul> </body> ``` ## HTML5 doctype 在页面开头使用这个简单的 doctype 来启用标准模式,使其在每个浏览器中尽可能一致的展现 虽然 doctype 不区分大小写,但是按照惯例,doctype 使用全大写 ```html <!-- good --> <!DOCTYPE html> ``` ## lang 属性 根据HTML5规范: > 应在 html 标签上加上 lang 属性。这会给语音工具和翻译工具帮助,告诉它们应当怎么去发音和翻译。 在 sitepoint 上可以查到 [语言列表](https://www.sitepoint.com/web-foundations/iso-2-letter-language-codes/) 但 sitepoint 只是给出了语言的大类,例如中文只给出了 zh,但是没有区分香港,台湾,大陆。而微软给出了一份更加详细的 [语言列表](https://msdn.microsoft.com/en-us/library/ms533052(v=vs.85).aspx),其中细分了 zh-cn, zh-hk, zh-tw ```html <!DOCTYPE html> <html lang="zh-cn"> </html> ``` ## 字符编码 通过声明一个明确的字符编码,让浏览器轻松、快速的确定适合网页内容的渲染方式,通常指定为 "utf-8" ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> </html> ``` ## IE 兼容模式 用 `<meta>` 标签可以指定页面应该用什么版本的 IE 来渲染,PC 端项目,建议启用 IE Edge 模式 ```html <!DOCTYPE html> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge"> </head> </html> ``` ## 引入 CSS、JS * 根据 HTML5 规范, 通常在引入 CSS 和 JS 时不需要指明 `type`,因为 `text/css` 和 `text/javascript` 分别是他们的默认值 * 在引入 CSS 时,必须指明 `rel="stylesheet"` * 将 script 放在页面中间将阻断页面的渲染,出于性能方面的考虑,如非必要,JavaScript 应当放在页面末尾 ```html <html> <head> <link rel="stylesheet" src="index.css"> </head> <body> <script src="index.js"></script> </body> </html> ``` ## boolean 属性 boolean 属性指不需要声明取值的属性,XHTML 需要每个属性声明取值,但是 HTML5 并不需要 ```html <!-- good --> <input type="text" disabled> <input type="checkbox" value="1" checked> <!-- bad --> <input type="text" disabled="disabled"> <input type="checkbox" value="1" checked="true"> ``` ## 减少标签数量 在编写HTML代码时,需要尽量避免多余的父节点 ```html <!-- good --> <img class="logo" src="logo.png"> <!-- bad --> <span class="logo"> <img src="logo.png"> </span> ``` ## 实用高于完美 * 尽量遵循 HTML 标准和语义,但是不应该以浪费实用性作为代价 * 任何时候都要用尽量小的复杂度和尽量少的标签来解决问题