2017年9月

背景

这篇文章定义了 HTML 和 CSS 的格式和代码规范,旨在提高代码质量和协作效率。

通用样式规范

协议

省略图片、样式、脚本以及其他媒体文件 URL 的协议部分(http:,https:),除非文件在两种协议下都不可用。这种方案称为 protocol-relative URL,好处是无论你是使用 HTTPS 还是 HTTP 访问页面,浏览器都会以相同的协议请求页面中的资源,同时可以节省一部分字节。

<!-- Not recommended -->
<script src="https://www.google.com/js/gweb/analytics/autotrack.js"></script>
<!-- Recommended -->
<script src="//www.google.com/js/gweb/analytics/autotrack.js"></script>
/* Not recommended */
    .example {
      background: url(https://www.google.com/images/example);
    }
/* Recommended */
    .example {
      background: url(//www.google.com/images/example);
    }

通用格式规范

缩进

一次缩进2个空格,不要使用 tab 或者混合 tab 和空格的缩进。

<ul>
      <li>Fantastic
      <li>Great
    </ul>
.example {
      color: blue;
    }

大小写

以下都应该用小写:
HTML 元素名称,属性,属性值(除非 text/CDATA),CSS 选择器,属性,属性值。

<!-- Not recommended -->
    <A HREF="/">Home</A>
<!-- Recommended -->
    <img src="google.png" alt="Google">
 /* Not recommended */
    color: #E5E5E5;
/* Recommended */
    color: #e5e5e5;

结尾空格

结尾空格不仅多余,而且在比较代码时会更麻烦。

<!-- Not recommended -->
    <p>What?_

    <!-- Recommended -->
    <p>Yes please.

通用元规范

编码

在 HTML 中通过指定编码方式,CSS 中不需要指定,因为默认是 UTF-8。

注释

使用注释来解释代码:包含的模块,功能以及优点。

任务项

用 TODO 来标记待办事项,而不是用一些其他的标记,像 @@。

<!-- TODO: remove optional tags -->
    <ul>
      <li>Apples</li>
      <li>Oranges</li>
    </ul>

HTML 风格规范

文档类型

HTML 文档应使用 HTML5 的文档类型:。
孤立标签无需封闭自身,<br> 不要写成 <br />。

HTML 正确性

尽可能使用正确的 HTML。

<!-- Not recommended -->
    <title>Test</title>
    <article>This is only a test.
<!-- Recommended -->
    <!DOCTYPE html>
    <meta charset="utf-8">
    <title>Test</title>
    <article>This is only a test.</article>

语义化

根据使用场景选择正确的 HTML 元素(有时被错误的称为“标签”)。例如,使用 h1 元素创建标题,p 元素创建段落,a 元素创建链接等等。正确的使用 HTML 元素对于可访问性、可重用性以及编码效率都很重要。

<!-- Not recommended -->
    <div onclick="goToRecommendations();">All recommendations</div>
<!-- Recommended -->
    <a href="recommendations/">All recommendations</a>

多媒体元素降级

对于像图片、视频、canvas 动画等多媒体元素,确保提供其他可访问的内容。图片可以使用替代文本(alt),视频和音频可以使用文字版本。

<!-- Not recommended -->
    <img src="spreadsheet.png">
<!-- Recommended -->
    <img src="spreadsheet.png" alt="Spreadsheet screenshot.">

关注分离

标记、样式和脚本分离,确保相互耦合最小化。

实体引用

如果团队中文件和编辑器使用同样的编码方式,就没必要使用实体引用,如 ,除了一些在 HTML 中有特殊含义的字符(如 < 和 &)以及不可见的字符(如空格)。

<!-- Not recommended -->
    The currency symbol for the Euro is &ldquo;&eur;&rdquo;.
<!-- Recommended -->
    The currency symbol for the Euro is “€”.

type 属性

在引用样式表和脚本时,不要指定 type 属性,除非不是 CSS 或 JavaScript。
因为 HTML5 中已经默认指定样式变的 type 是 text/css,脚本的type 是 text/javascript。

<!-- Not recommended -->
    <link rel="stylesheet" href="//www.google.com/css/maia.css"
      type="text/css">

    <!-- Recommended -->
    <link rel="stylesheet" href="//www.google.com/css/maia.css">

    <!-- Not recommended --><script src="//www.google.com/js/gweb/analytics/autotrack.js"
      type="text/javascript"></script>

    <!-- Recommended --><script src="//www.google.com/js/gweb/analytics/autotrack.js"></script>

HTML 格式规范

HTML 引号

属性值用双引号。

<!-- Not recommended --><a class='maia-button maia-button-secondary'>Sign in</a>
<!-- Recommended --><a class="maia-button maia-button-secondary">Sign in</a>

CSS 风格规范

ID 和 Class 命名

使用有含义的 id 和 class 名称。

/* Not recommended: meaningless */
    #yee-1901 {}

    /* Not recommended: presentational */
    .button-green {}
    .clear {}
/* Recommended: specific */
    #gallery {}
    #login {}
    .video {}

    /* Recommended: generic */
    .aux {}
    .alt {}

ID 和 Class 命名风格

id 和 class 应该尽量简短,同时要容易理解。

/* Not recommended */
    #navigation {}
    .atr {}
/* Recommended */
    #nav {}
    .author {}

选择器

除非需要,否则不要在 id 或 class 前加元素名。

/* Not recommended */
    ul#example {}
    div.error {}
/* Recommended */
    #example {}
    .error {}

属性简写

尽量使用 CSS 中可以简写的属性 (如 font),可以提高编码效率以及代码可读性。

/* Not recommended */
    border-top-style: none;
    font-family: palatino, georgia, serif;
    font-size: 100%;
    line-height: 1.6;
    padding-bottom: 2em;
    padding-left: 1em;
    padding-right: 1em;
    padding-top: 0;
/* Recommended */
    border-top: 0;
    font: 100%/1.6 palatino, georgia, serif;
    padding: 0 1em 2em;

0 和单位

值为 0 时不用添加单位。

margin: 0;
    padding: 0;

开头的 0

值在 -1 和 1 之间时,不需要加 0。

font-size: .8em;

16进制表示法

/* Not recommended */
    color: #eebbcc;


/* Recommended */
    color: #ebc;

前缀

使用带前缀的命名空间可以防止命名冲突,同时提高代码可维护性。

.adw-help {} /* AdWords */
    #maia-note {} /* Maia */

ID 和 Class 命名分隔符

选择器中使用连字符可以提高可读性。

/* Not recommended: does not separate the words “demo” and “image” */
    .demoimage {}

    /* Not recommended: uses underscore instead of hyphen */
    .error_status {}
/* Recommended */
    #video-id {}
    .ads-sample {}

CSS 格式规范

书写顺序

按照属性首字母顺序书写 CSS 易于阅读和维护,排序时忽略带有浏览器前缀的属性。

background: fuchsia;
    border: 1px solid;
    -moz-border-radius: 4px;
    -webkit-border-radius: 4px;
    border-radius: 4px;
    color: black;
    text-align: center;
    text-indent: 2em;

块级内容缩进

为了反映层级关系和提高可读性,块级内容都应缩进。

@media screen, projection {

      html {
        background: #fff;
        color: #444;
      }

    }

声明结束

每行 CSS 都应以分号结尾。

/* Not recommended */
    .test {
      display: block;
      height: 100px
    }
/* Recommended */
    .test {
      display: block;
      height: 100px;
    }

属性名结尾

属性名和值之间都应有一个空格。

/* Not recommended */
    h3 {
      font-weight:bold;
    }
/* Recommended */
    h3 {
      font-weight: bold;
    }

声明样式块的分隔

在选择器和 {} 之间用空格隔开。

/* Not recommended: missing space */
    #video{
      margin-top: 1em;
    }

    /* Not recommended: unnecessary line break */
    #video
    {
      margin-top: 1em;
    }
/* Recommended */
    #video {
      margin-top: 1em;
    }

选择器分隔

每个选择器都另起一行。

/* Not recommended */
    a:focus, a:active {
      position: relative; top: 1px;
    }
/* Recommended */
    h1,
    h2,
    h3 {
      font-weight: normal;
      line-height: 1.2;
    }

规则分隔

规则之间都用空行隔开。

html {
      background: #fff;
    }

    body {
      margin: auto;
      width: 50%;
    }

CSS 引号

属性选择器和属性值用单引号,URI 的值不需要引号。

/* Not recommended */
    @import url("//www.google.com/css/maia.css");

    html {
      font-family: "open sans", arial, sans-serif;
    }
/* Recommended */
    @import url(//www.google.com/css/maia.css);

    html {
      font-family: 'open sans', arial, sans-serif;
    }

CSS 元规则

分段注释

用注释把 CSS 分成各个部分。

/* Header */

    #adw-header {}

    /* Footer */

    #adw-footer {}

    /* Gallery */

    .adw-gallery {}

结语

坚持遵循代码规范。

来自:Web Develop - SegmentFault

原文:Google HTML/CSS Style Guide

今天日常逛网站时发现的这些简短语句,感觉扯的很有道理,然后就复制粘贴了......
下面这些个简短语句可能早已被大家熟知,但是细读下来确实很有道理,其实,这就是现实。


01
你全力做到的最好,
可能还不如别人的随便搞搞。
02
失败并不可怕,
可怕的是你还相信这句话。
03
你以为有钱人很快乐吗,
他们的快乐你根本想象不到。
04
你们之所以喝鸡汤,
是因为肉被别人吃了。
05
条条大路通罗马,
而有些人就生在罗马。
06
别灰心,人生就是这样起起落
落落落落落落落落落落落落的。
07
有人出现在你的生命里,
是为了告诉你,你真好骗。
08
比一个人吃火锅更寂寞的是,
一个人没有钱吃火锅。
09
有时候你不努力一下,
不知道什么叫绝望。
10
男女之间一定有纯真的友谊,
因为每一个认识我的女生,
都说最多只能跟我做朋友。
11
盖茨休学创业成了世界富翁,
但人家休的是哈佛大学。
12
不要没完没了的修图。
你现实中长得丑,
我们都知道。
13
最怕你一生碌碌无为,
还安慰自己平凡可贵。
14
许多人说选择北上广的原因,
是发展机会好。
但他们说的发展,
实际上指的就是打工。
15
当你觉得自己又丑又穷,一无是处时,
别绝望,因为至少你的判断还是对的。
16
不要看别人表面上一帆风顺,
实际上,他们背地里,也是一帆风顺。
17
哪有什么选择恐惧症,
还不是因为穷。
18
你无法叫醒一个不回你消息的人,
但是红包能。
19
虽然你单身,
但是你胖若两人。
20
好女孩只得到了好字,
而漂亮女孩却得到了所有。
21
你只知道人家化妆比你好看,
却不知道,她们卸了妆,
不仅比你好看,皮肤还吹弹可破。
22
爱笑的女生运气不会太差。
说实话,
如果一个女生运气一直不好,
我不知道她怎么笑得出来。
23
像我这种连名牌都不认识几个的人,
有时候连别人在炫富都感觉不到。
24
喜欢一个人就去表白,
万一成备胎了呢。
25
善良没用,你得漂亮,还得有钱。
26
上帝是公平的,
给了你丑的外表,
还会给你低的智商,
以免让你显得不协调。
27
为什么总是天妒英才呢?
因为没人管笨蛋活多久。
28
长得丑就是病,
不然整形医院怎么叫医院?
29
学校教学楼厕所放镜子你以为让你整理仪容!?
你错了,是为了让你知道,人丑就要多读书。
30
一些人常会被骂,说每天像猪一样爱睡懒觉。
真的是太委屈了,猪都比你早起。
31
人生很多事,终究是会随着时间好起来的。
像很多人原本只是胖,久了就变好胖。
32
这段日子迷惘又黑暗,
撑过去了会有下一个黑暗等着你。
33
生活不止眼前的苟且,
还有前任的喜帖。
34
你听过的情话不都是为上床做铺垫吗?
35
谁说你没有毅力的,
单身这事你不就坚持了好几十年吗?
36
女追男隔层纱,除非那男的本来就对你有好感,
不然隔的基本都是铁丝网,还是带电的那种。
37
撩你不是因为喜欢你,
而是因为看你的样子就知道你很容易睡。
38
当你失败的时候,
身边会有一群关心你的人,
他们会问你发生什么事,
听听你的失败经验,
然后心满意足地离开。
39
等你以后老了,走不动了,
我就每天用轮椅推你到广场上去,
让你看着我和别的老头跳舞。
40
有的人是来爱你的,
有的人就是来给你上课的。
41
如果一个人秒回了你,
也只能说明这个人在玩手机而已。
42
你以为他是不会表达,
其实他就是不爱你。
43
以前觉得靠关系的人一定是很无能,
接触过后发现人家样样比你强。
44
你努力过后才发现,
智商的鸿沟是无法逾越的。
45
喜欢一个人一定要去告白,
不被拒绝一下,
你还真以为自己是小仙女了。
46
不努力的女生,
会有买不完的地摊货,逛不完的菜市场。
努力的女生,你就没时间逛地摊,
因为你只能加班叫外卖、逛网店!
47
从前车马很慢,
书信很远,
一生只够爱一个人,
但是能纳很多妾。
48
在你深夜失眠时,人家早就呼呼大睡了,
在你孤独时,别人早已有了新欢,
在你怀旧时,别人早就将你忘的一干二净了,
所以别再因为他继续熬夜了。
49
你才二十多岁,
没有遇到喜欢的人很正常,
往后你会发现,大概是遇不到了。
50
现在的人天天手机不离手,
要回你消息早就回了,
单身没关系,
以后单身的日子还长着呢。
再谈谈友情:在现实社会里,人越来越虚伪,几乎每个人都带着面纱,做着并不真实的自己。“朋友”这个词变的越来于抽象。有的人,用的着朋友的时候是尽量恭维,等达到目的,就嗤之以鼻,甚至在别的朋友面前嘲笑讽刺你,在别人面前贬低你,其实,这不是朋友,这只是在他有困难时想利用的工具。