翻译:谷歌HTML、CSS和JavaScript风格规范
我喜欢浏览风格规范。他们通常有明显的规则,虽然有些有荒诞之感,但是却可以发现之前未注意到的宝石。不幸的是,鲜有公司有这个勇气来发布自己内部的风格规范。BBC 2010年时候公开其文档以及Google最终发布了其内部项目使用的风格规范。
规则包括C++, Objective C, Python, XML, 以及R, 但是,我们最关心的是HTML, CSS以及JavaScript. 文档短小精悍。我见过太多尼玛写了差不多1001个规则的文档,压根就是显示“学识”,而不是传授有用意见!
让我们来仔细看看……
HTML
HTML样式规范并没有多少惊喜。
语义HTML5作为text/html
分离的标记、样式和脚本
在可能情况下验证你的标记
技术不支持的时候使用备胎,如canvas
谷歌推荐打理每一个字节:使用UTF-8编码,剔除尾部的空白,避免实体引用,如—及” 甚至推荐忽略可选结构以及结束标签,如:
<!DOCTYPE html>
<title>节约字节数 = 节约钞票数</title>
<p>如题。
作者吐槽:这……我虽然赞同要省字节,但是还是倾向于严格的XHTML解析。
译者吐槽:一字不差同上。
奇怪的是,谷歌建议使用连续的两个小空格代替tab空格。这不是两倍的字节大小吗?
CSS
样式规范主要就是更进一步的最佳实践以及字节节约技术:
使用有效的CSS, 除非是bugs处理或专属语法(浏览器私有前缀)
使用短ID或类命名,但确保他们不要太过隐晦,或直白(如#blue-button)
大型项目使用前缀,如#xyz-help, .xyz-column
选择器尽可能简单,如#example,而不是ul#example
使用缩写
url()中不使用引号,0后面不跟单位
使用#ABC这种简写的16进制颜色表示,而不是#AABBCC
每个声明最后都要有分号(即使是最后一个)
避免浏览器hacks
谷歌建议尺寸前面的数值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, 如:
if (x) {
var foo = function() {}
}
而不是:
if (x) {
function foo() {}
}
显然,第二种语法到处都有使用。其可以正常运作,但是在ECMAScript中是无效的。
文档还提到,包装对象应该永远不要用在基元上,除非是类型转换。其会导致意想不到的结果,例如:
var x = new Boolean(false);
if (x) {
// 代码执行
}
愚蠢的JavaScript.
最后,规范说你应该优先使用单引号(‘)于双引号(“),因为字符串可能包含HTML代码。
作者吐槽:我使用双引号到处沾花惹草,我不确定我能简单地改变这个习惯。但,我在PHP中对静态字符串又使用单引号。可能是我挑剔吧~~
译者吐槽:一字不差同上。
文档最好的建议是:保持一致。开发人员很少会赞同每个程序的规范要按照你自己的那套规则走。保持一致可以让6个月之后别人可以更容易地理解你的代码,可以让生活更加美好!
翻译:谷歌HTML、CSS和JavaScript风格规范的更多相关文章
- 【转】前端工程师必须了解的 谷歌 HTML/CSS 规范
		背景 这篇文章定义了 HTML 和 CSS 的格式和代码规范,旨在提高代码质量和协作效率. 通用样式规范 协议 省略图片.样式.脚本以及其他媒体文件 URL 的协议部分(http:,https:),除 ... 
- 谷歌 HTML/CSS 规范 2016-12-30
		背景 这篇文章定义了 HTML 和 CSS 的格式和代码规范,旨在提高代码质量和协作效率. 通用样式规范 协议 省略图片.样式.脚本以及其他媒体文件 URL 的协议部分(http:,https:),除 ... 
- [收藏]谷歌htm/css规范
		通用样式规范 协议 省略图片.样式.脚本以及其他媒体文件 URL 的协议部分(http:,https:),除非文件在两种协议下都不可用.这种方案称为 protocol-relative URL,好处是 ... 
- 【转】JavaScript 风格指南/编码规范(Airbnb公司版)
		原文转自:http://blog.jobbole.com/79484/ Airbnb 是一家位于美国旧金山的公司,本文是其内部的 JavaScript 风格指南/编码规范,在 Github 上有 11 ... 
- 必看谷歌HTML/CSS规范
		背景 这篇文章定义了 HTML 和 CSS 的格式和代码规范,旨在提高代码质量和协作效率. 通用样式规范 协议 省略图片.样式.脚本以及其他媒体文件 URL 的协议部分( http:,https: ) ... 
- 常用html、CSS、javascript前端命名规范
		无论是从技术角度还是开发视角,对于web前端开发规范文档都有一定规范,本文就css3和html5的发展前景总结了一系列的web开发文档,仅供大家参考. 规范目的: 为提高团队协作效率, 便于后台人员添 ... 
- JavaScript 风格指导(Airbnb版)
		JavaScript 风格指导(Airbnb版) 用更合理的方式写 JavaScript 原文 翻译自 Airbnb JavaScript Style Guide . 目录 类型 引用 对象 数组 解 ... 
- Dojo Javascript 编程规范(转)
		前言 相当不错的 Javascript 编程风格规范,建议大家采用此规范编写 Javascript.原文链接: http://dojotoolkit.org/developer/StyleGuide ... 
- 新手理解HTML、CSS、javascript之间的关系
		http://www.cnblogs.com/dreamingbaobei/p/5062901.html 工作多年,一直忙忙碌碌的应用各种技术,现在不忙了,问问自己究竟在做什么,究竟会什么竟答不上来, ... 
随机推荐
- 12 Spring Data JPA:orm思想和hibernate以及jpa的概述和jpa的基本操作
			spring data jpa day1:orm思想和hibernate以及jpa的概述和jpa的基本操作 day2:springdatajpa的运行原理以及基本操作 day3:多表操作,复杂查询 d ... 
- Necklace HDU - 3874 (线段树/树状数组 + 离线处理)
			Necklace HDU - 3874 Mery has a beautiful necklace. The necklace is made up of N magic balls. Each b ... 
- Python语言学习:字典常用的方法
			1. 增加:字典[key]=value(不存在的key和value) info={ 'stu1101':'TengLan', 'stu1102':'LuoZe', 'stu1103':'XiaoZe' ... 
- java 用阻塞队列实现生产者消费者
			package com.lb; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.Blocking ... 
- 第1章 MYSQL 体系结构和存储引擎
			一.定义数据库和实例 在集群的条件下,存在单个数据库对应多个实例 二.Mysql 体系结构 三.Mysql 存储引擎及各存储引擎之间的比较 命令:show engines; 四.连接 MySQL 4. ... 
- 发布订阅--SQLServer复制需要有实际的服务器名称才能连接到服务器,请指定实际的服务器名
			最近在学习SQL SERVER的高级复制技术的时候,遇到一个小问题,就是用本地SQL SERVER连接服务器的数据库时,在查看复制功能的发布服务器时,连接不上,弹出一个错误提示框架,如下: 原来在自己 ... 
- 关于前端html5的总结
			简介 HTML5 是HTML语言的第5次重大修改产生的新的HTML语言版本 HTML5 是W3C组织和众多主要浏览器厂商以及众多开发者共同努力的结果,得之不易 HTML5 主要改进包括:增加新的HTM ... 
- 传统方式接口测试返回值json验证
			1.返回值 2.验证方式: public void check200_N(Object obj, int ret_num) throws UnsupportedEncodingException, E ... 
- Nginx_安全2
			Nginx与安全有关的配置 隐藏版本号 http { server_tokens off;} 经常会有针对某个版本的nginx安全漏洞出现,隐藏nginx版本号就成了主要的安全优化手段之一,当然 ... 
- 2018-1 WebStorm最新版本破解激活方法
			在激活页面选择License Server,输入:http://idea.codebeta.cn,点击Activate即可激活. 如果失效用这个: http://idea.ibdyr.com 
