`
realic
  • 浏览: 17885 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Google推荐的15条军规:HTML5代码规范

阅读更多

Google推荐的15条军规:HTML5代码规范
作者:夜飞羽 来源:mxria.com  时间:2012-05-11

今天无意间看到了Google的HTML/CSS编码规范,发现了不少自己很容易忽略的问题,特意仔细看了看,将其整理翻译出来分享给大家。Google规范的原文链接大家可以访问:http://google-styleguide.googlecode.com/svn/trunk/htmlcssguide.xml

1.协议头:

建议在指向图片或其他媒体文件、样式表和脚本的URL地址中省略http:https:协议部分,除非已知相应文件不能同时兼容2个协议。

1
2
3
4
5
6
7
8
9
10
11
12
13
<BR>
<!-- Not recommended不推荐 --><BR>
<!-- Recommended 推荐--><BR>
<script src="//www.google.com/js/gweb/analytics/autotrack.js"></script><BR>
/* Not recommended不推荐 */<BR>
.example {<BR>
  background: url(http://www.google.com/images/example);<BR>
}<BR>
/* Recommended 推荐 */<BR>
.example {<BR>
  background: url(//www.google.com/images/example);<BR>
}

注:这个倒是真正平日不注意的,只要是绝对地址,http:总是带着。如果仔细想一想,还真有道理。

2.缩进:每次缩进使用双空格
不要使用tab制表符或制表符加空格的混合方式缩进

1
2
3
4
5
6
7
<ul><BR>
  <li>mxria.com<BR>
  <li>www.mxria.com<BR>
</ul><BR>
.example {<BR>
  color: blue;<BR>
}

3.大小写:只使用小写

所有的代码都应是小写的,包括元素名称、属性,属性值(除非text或CDATA的内容)、选择器、css属性、属性值(字符串除外)

1
2
3
4
5
<BR>
<!-- Not recommended 不推荐--><BR>
<A HREF="/">Home</A><BR>
<!-- Recommended 推荐--><BR>
<img src="mxria.png" alt="MXRIA">

4.尾随空格
尾随空格是不必要的,容易搞复杂diff文件。这个绝对是经验教训的总结!!!

1
2
3
4
<!-- Not recommended --><BR>
<p>What?_<BR>
<!-- Recommended --><BR>
<p>Yes please.

5.编码格式:使用UTF-8

请确保您的编辑器使用的字符编码??为UTF-8,没有字节顺序标记。在html模板或文档中通过 <meta charset="utf-8">来

定义编码格式。关于编码格式参考 Character Sets & Encodings in XHTML, HTML and CSS

6.注释
根据需要解释代码,这个就不多说了,团队开发这个非常重要,尽管很多时候大家不愿意遵守,但确实重要!!!

7.TODO待定项
尚未实现的或待定的内容一定要标识强调出来,利用TODO辨识,而非其他诸如@@来强调。
在todo项中如果有必要列明联系人,比如负责人
在TODO后追加一个冒号作为行动内容,例如 TODO:为美瑞网增加html5模板

8.文档类型:使用HTML5

使用<!DOCTYPE html>.HTML(text/html)类型文件相对XHTML(alication/xhtml+xml)文件,在浏览器及框架支持上和优化空间上都要好很多。


9.HTML 合法性验证

合法的使用HTML,并利用w3c的工具(W3C HTML validator)进行检查。唯一例外就是因为性能原因需要压缩文件大小。
原文如下:Use valid HTML code unless that is not possible due to otherwise unattainable performance goals  regarding file size. 但这个确实很难想象,省略标签节省的文件大小能有多少字节?但带来的问题可是风险居高哦!

1
2
3
4
5
6
7
8
9
<BR>
<!-- Not recommended 不推荐--><BR>
<title>Test</title><BR>
<article>This is only a test.<BR>
<!-- Recommended 推荐--><BR>
<!DOCTYPE html><BR>
<meta charset="utf-8"><BR>
<title>Test</title><BR>
<article>This is only a test.</article>

10.语义性
根据目的来合理使用HTML,这点对于HTML5而言尤为重要。下面例子可以对比,能实现同样的结果,但效率和可读性却有很大差别。

1
2
3
4
5
<BR>
<!-- Not recommended --><BR>
<div onclick="goToRecommendations();">All recommendations</div><BR>
<!-- Recommended --><BR>
<a href="recommendations/">All recommendations</a>

对于HTML5而言,例如header、footer、nav、section等跟div能实现的功能基本类似,但是语义性上有着天壤之别。

11.多媒体后备:为多媒体提供备选内容

这个属于老生长谈的内容,典型就是为img添加alt内容。

12.关注点分离
这点很重要,严格遵守将组织结构(markup)、表现样式(style)和行为动作(script)分开处理的原则,并且尽量使三者之间的关联度降到最小。这主要是基于维护性的考虑,通常,更新style文件或脚本文件比更改HTML文件的代价要小很多,试想一下,对于一个有超过10万页面的网站进行局部颜色调整,是每个html文件修改容易还是修改一个style文件容易?

12.可选Tags:省略可选的标签

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<STRONG><BR>
</STRONG><!-- Not recommended --><BR>
<!DOCTYPE html><BR>
<html><BR>
  <head><BR>
    <title>Spending money, spending bytes</title><BR>
  </head><BR>
  <body><BR>
    <p>Sic.</p><BR>
  </body><BR>
</html><BR>
<!-- Recommended --><BR>
<!DOCTYPE html><BR>
<title>Saving money, saving bytes</title><BR>
<p>Qed.

13.实体引用
假定开发团队内,文件和编辑器都是使用同样的编码格式(UTF-8),则没有必要使用实体引用的方式,例如&mdash;,

&rdquo;, or &#x263a; 除非一些HTML中具有特定含义的字符,如"<",或不可见字符如空格

14.Type属性:省略
将样式表和脚本中的Type省略,除非你不是用的css或javascript,在HTML5中,该值默认是text/css和text/javascript

1
2
3
4
5
6
7
8
9
10
11
<BR>
<!-- Not recommended --><BR>
<link rel="stylesheet" href="//www.google.com/css/maia.css"<BR>
  type="text/css"><BR>
<!-- Recommended --><BR>
<link rel="stylesheet" href="//www.google.com/css/maia.css"><BR>
<!-- Not recommended --><BR>
<script src="//www.google.com/js/gweb/analytics/autotrack.js"<BR>
  type="text/javascript"></script><BR>
<!-- Recommended --><BR>
<script src="//www.google.com/js/gweb/analytics/autotrack.js"></script>

15.block,list或table元素
针对每个block,list或table元素另起一行,并在每个子元素前缩进。这样可读性好,例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<blockquote><BR>
  <p><em>Space</em>, the final frontier.</p><BR>
</blockquote><BR>
<ul><BR>
  <li>Moe<BR>
  <li>Larry<BR>
  <li>Curly<BR>
</ul><BR>
<table><BR>
  <thead><BR>
    <tr><BR>
      <th scope="col">Income<BR>
      <th scope="col">Taxes<BR>
  <tbody><BR>
    <tr><BR>
      <td>$ 5.00<BR>
      <td>$ 4.50<BR>
</table>

 对于使用HTML5的朋友,可以参考。当然,不同团队还会整理出适合自己的代码规范,上述应该来说属于比较基本的规则内容。


分享到:
评论

相关推荐

    成为编程高手的二十二条军规

    《成为编程高手的二十二条军规》这篇文章,提供了一系列宝贵的建议与指导原则,旨在帮助程序员们在编程的道路上不断精进,最终达到高手的境界。下面,我们将对文章中的部分核心知识点进行深入解析,以期帮助读者更好...

    华为JAVA编程规范、编程军规

    在IT行业中,编程规范是确保代码质量、可读性及团队协作的重要基石。华为作为全球知名的科技企业,对编程有着严谨的要求。以下是基于标题“华为JAVA编程规范、编程军规”以及描述中提及的文档,提炼出的一些核心知识...

    MySQL数据库开发的三十六条军规

    这三十六条军规主要围绕数据库的高性能、稳定性以及开发者的实践操作,涵盖了核心军规、字段类军规、索引类军规、SQL类军规以及约定类军规五个部分。在详细介绍这些军规之前,有必要先了解下MySQL数据库开发的一些...

    移动app测试的22条军规

    #### 十五、APP缓存机制 1. **更新频率**:根据内容的更新周期,合理设置缓存策略。 2. **更新显示**:确保缓存的内容能够及时更新,反映最新的数据。 #### 十六、第三方APP集成和调用 1. **App集成**:与其他应用...

    华为java编程军规

    军规十:在进行精确计算时(例如:货币计算)避免使用 float 和 double,浮点数计算都是不精确的,必须使用 BigDecimal 或将浮点数运算转换为整型运算。这是因为浮点数计算不精确,可能会导致计算结果的错误。 遵循...

    移动APP测试22条军规

    移动APP测试22条军规的知识点涵盖了移动应用程序测试的主要方面,包括测试环境的搭建、测试类型与分类、网络连接的测试、多任务处理和意外情况的模拟、用户界面与体验的测试、通知和消息展示的设计、操作系统特性的...

    运维的 85 条军规

    ### 运维的85条军规:核心知识点解析 #### 1. 承载能力优先 - **重要性**:任何系统设计之初都应当优先考虑其承载能力,即能够处理的最大工作负载量。 - **操作建议**:在考虑优化之前,首先确保系统能够稳定运行在...

    华为java编码军规

    华为java编码军规,经典编码风格规范。极大提高你的编码能力

    SQL Server数据库开发的二十一条军规

    ### SQL Server数据库开发的二十一条军规:解析与实践指南 #### 一、了解你用的工具 在数据库开发领域,尤其是针对SQL Server这样的强大平台,深入理解并掌握其提供的工具和技术至关重要。这一条建议强调的是,...

    SQL优化30条军规.pdf

    标题《SQL优化30条军规》和描述“SQL优化的30条军规,希望可以帮到大家。军规适用场景:并发量大、数据量大的互联网业务,解读:讲解原因,解读比军规更重要”表明了这份文档旨在为处理高并发和大数据量场景下的...

    征服英语的33条军规

    征服英语的33条军规 征服英语的33条军规 征服英语的33条军规 征服英语的33条军规 征服英语的33条军规 征服英语的33条军规 征服英语的33条军规

    mySql36条军规.pdf

    mySql36条军规 主讲Mysql规范和优化对程序员很有帮助。

    老二牛车Axure夜话:中继器系列视频教程之中继器原型设计二十一条军规

    11. **军规十至二十一条**:剩余的军规可能涵盖更高级的应用技巧,如自定义函数、动态加载、数据过滤与聚合等,这些都需要通过实际的教程学习和实践来掌握。 通过这个“二十一条军规”视频教程,用户可以系统地学习...

    运算放大器使用必须遵循的六条军规

    第五条军规是注意反馈回路的Layout。布局布线对于模拟电路的性能有着极其重要的影响。反馈回路中的元件应尽量靠近运放,且走线应短而直,同时要避免经过高速数字信号和晶振等干扰源的附近。不合理的布局布线可能导致...

Global site tag (gtag.js) - Google Analytics