不管有多少人参与同一个项目,一定要确保每一行代码都像是同一个人编写的。
Every line of code should appear to be written by a single person, no matter the number of contributors.
<head> <meta charset="UTF-8"> </head>
3.6 引入 CSS 和 JavaScript 文件
根据 HTML5 规范,在引入 CSS 和 JavaScript 文件时一般不需要指定 type 属性,因为 text/css 和 text/javascript 分别是它们的默认值。
<!-- External CSS --> <link rel="stylesheet" href="code-guide.css"> <!-- JavaScript --> <script src="code-guide.js"></script>
3.7 实用高于完美
尽量遵循 HTML 标准和语义,但是不应该以浪费实用性作为代价。任何时候都要用尽量小的复杂度和尽量少的标签来解决问题。
3.8 属性顺序
HTML 属性应当按照以下给出的顺序依次排列,确保代码的易读性。
class
id, name
data-*
src, for, type, href
title, alt
aria-*, role
class 用于标识高度可复用组件,因此应该放在首位。id 用于标识具体组件,应该尽量少使用(例如,页面内的书签),因此排在第二位。
以上顺序也不一定是绝对的,可以根据需要把常用的放在首位
3.9 布尔(boolean)型属性
Boolean 属性指不需要声明值的属性。XHTML 需要每个属性声明值,但是 HTML5 并不需要。了解更多内容,参考 WhatWG section on boolean attributes
一个元素中 Boolean 属性的存在表示取值 true,不存在则表示取值 false。如果一定要为其赋值的话,请参照 WhatWG 中的说明。
如果属性存在,其值必须是空字符串或 [...] 属性的本身名称,并且不要在首尾添加空白符。
简单来说,就是不用赋值。
<input type="text" disabled> <input type="checkbox" value="1" checked> <select> <option value="1" selected>1</option> </select> <!--不建议 --> <input type="text" value="1" readonly="readonly" disabled="disabled">
虽然 HTML5是这样规定的,但是对于IE浏览器,如果不指定属性值,有时会有问题的,尤其是readonly和 disabled ,所以最好还是设置为 readonly="readonly" disabled="disabled"
3.10 减少标签嵌套的数量
在编写 HTML 代码时,尽量避免多余的父节点。很多时候,需要通过迭代和重构来使 HTML 变得更少。 请看下面的例子
<!-- Not so great --> <span class="avatar"> <img src="..."> </span> <!-- Better --> <img class="avatar" src="...">
3.11 避免利用JavaScript 生成标签或html片段
通过 JavaScript 生成的标签或html片段让内容变得不易查找、编辑,并且降低性能。能避免时尽量避免,我们可以采用模板的方式来处理,常用的模板有
handlebars(模板引擎类),Ember.js 就采用该模板引擎
knockoutjs,除了支持模板,他还是一个轻量级的MVVM框架
mustashe, 一个模板引擎
JsRender,一个非常好用的html模板引擎类
在不引入其他mvc或mvvm框架的前提下,采用 JsRender 或 handlebars 来处理html模板,这两个模板支持循环、条件语句,还支持在模板中动态执行JavaScript脚本(不建议这样做)。当然我们还可以引入MVC框架,这些框架一般都自带模板处理引擎,比如Angular、Ember、KnockoutJs等
4.语义化命名和语义化标签
我们尽量多采用语义化来命名id,并且采用语义化标签来书写html代码,多用html5中新增的标签来书写。 5.Emmet帮助我们快速书写html代码
以上就是HTML编码规范详细介绍的内容,更多相关内容请关注PHP中文网(www.gxlcms.com)!