翻译:谷歌HTML、CSS和JavaScript风格规范

我爱浏览风格规范。他们一般有总而言之的条条框框,即便有点有荒唐的感,然而可足以发现前不专注到之宝石。不幸之凡,鲜有集团出夫勇气来发表温馨中的品格规范。BBC
二零一零年上公开其文档以及谷歌最后宣布了彼内部项目利用的风骨规范。

 

规则包括C++, Objective C, Python, XML, 以及R, 不过,我们太关心的是HTML,
CSS以及JavaScript.
文档短小精悍。我表现了最多尼玛勾勒了大半1001独规则之文档,压根就是是显得“学识”,而休是传起因而意见!

 

于大家来仔细瞧……

 

HTML

HTML样式规范并无多少惊喜。

 

语义HTML5作为text/html

分开之记、样式和本子

以可能境况下验证你的标记

艺不辅助的时光使用备胎,如canvas

Google推荐打理每一个字节:使用UTF-8编码,剔除尾部底空域,避免实体引用,如—及”
甚至推荐忽略可摘结构和罢标签,如:

 

<!DOCTYPE html>

<title>节约字节数 = 节约钞票数</title>

<p>如题。

作者吐槽:这……我则赞同而看看字节,但是依然倾向被严的XHTML解析。

 

翻译吐槽:一字不差同齐。

 

奇怪的是,Google指出以连续的蝇头只稍空格代替tab空格。那不是零星倍之字节大小也?

 

CSS

体制规范重大就是是再度进一步的极品实践以及字节节约技术:

 

行使中之CSS, 除非是bugs处理如故专属语法(浏览器私有前缀)

以短ID或接近命名,但保险他们绝不太过别扭,或直接(如#blue-button)

大型项目使用前缀,如#xyz-help, .xyz-column

拔取器尽可能简单,如#example,而不是ul#example

应用缩写

url()中无应用引号,0前边不与单位

使用#ABC这种简写的16上前制颜色表示,而休是#AABBCC

每个讲明最终还使发出分公司(即使是最后一个)

避浏览器hacks

Google指出尺寸前边的数值0省掉,如.5em, 可以节约一个字符.

 

正式还援引每个注明占据一行。

 

下一场,注解的修遵照首字母顺序排列,如下:

 

#example

{

    border: 1px solid #000;

    border-radius: 6px;

    display: block;

    font-family: sans-serif;

    margin: 1em;

    outline: 0;

    padding: 10px;

    text-align: center;

}

作者吐槽:对于性之排序我要么喜欢依据其相关性,如块类/尺寸,字体,文字对一头,填充,边距,颜色,背景,边框以及此外性能。尽管,可以会晤被此外开发人士困惑,然而本人要好因而了成千上万年了!

 

翻译吐槽:一字不差同齐。

 

JavaScript

JavaScript的品格规范相比充分,这可以知晓,不过我们得以提炼出一部分首要:

 

连日来以var评释变量

行末别忘了子集团

应用正式而无是无规范的功力

运用驼峰命名(如:camelCaseNames)以及大写的常量(如:UPPERCASE),制止接纳const关键字,因为IE不协理

以命名空间技术

避免eval()除非反系列化(奇怪的是JSON解析并未提及)

防止对象及动with(), 数组使用for in

应用对象同数组字面量而非是重新没完没了的扬言

要知道truthy和falsy规则

JavaScript资源遭到莫接纳IE条件注释

无修改内置对象的原型——这会为丁颜面扫地,因为这是给JavaScript更加强的效益有,但您知就会招问题

小心用闭包以及不要循环引用

同等,小心用”this”

此出个非太日常的推介,不以块域中动用function, 如:

 

ECMAScript,if (x) {

  var foo = function() {}

}

而不是:

 

if (x) {

  function foo() {}

}

显,第二种语法到处都发出以。其可以正常运转,可是于ECMAScript中凡无济于事的。

 

文档还涉及,包装对象应永远不要用当基元上,除非是类型转换。其会合招意外的结果,例如:

 

var x = new Boolean(false);

if (x) {

    // 代码执行

}

愚蠢的JavaScript.

 

末段,规范说而该先使用单引号(‘)于复引号(“),因为字符串可能带有HTML代码。

 

作者吐槽:我利用对引号到处沾花惹草,我无确定自己力所能及简单地转移这习惯。但,我当PHP中对静态字符串又以单引号。可能是自己挑剔吧~~

 

翻译吐槽:一字不差同齐。

 

文档最好之提出是:保持一致。开发人士很少会众口一辞每个程序的科班而遵循卿自己的那么套规则走。保持一致可以于6个月未来人家可以更易于地领略您的代码,可以叫在越来越光明!