前端样式规范

一般格式规则

字母大小写

仅使用小写。

所有代码均使用小写,该规则适用于 CSS 选择符、属性和属性值(字符串除外)。

不推荐:

color: #E5E5E5;

推荐:

color: #e5e5e5;

末尾空格

删除行尾空格。

行尾空格属于多余的符号,会使 diff 更加难以阅读。

不推荐:

border: 0;__

推荐:

border: 0;

如果使用 Sublime Text,你可在用户设置(User Settings)JSON 文件(可在文本编辑器的菜单中找到)中添加以下代码,每当你以此方法储存文件时,去除行尾空格操作便会自动完成:

"trim_trailing_white_space_on_save": true

缩进

整个文件中的缩进应保持前后一致,使用 Tab、2个空格或4个空格都可以,但需保持前后一致。

一般元规则

编码

使用 UTF-8(无 BOM)。

确保你的编辑器将没有字节顺序标记的 UTF-8 用作字符编码。不要将样式表的编码设置为假定的 UTF-8。

注释

在可行和必要时,对代码添加注释。

用注释解释代码的覆盖范围、目的和作用以及使用和选择各解决方案的原因。

任务项

用 TODO: 标注待办事项和任务项:

仅用关键词 TODO 标注待办事项,不要使用 @@ 等其他格式的字样。在任务项前加冒号,如:TODO: action item。

推荐:

/* TODO: 添加一个按钮元素 */

CSS 样式规则

CSS 有效性

使用有效的 CSS。

使用有效的 CSS 是可测量的基准质量,可确保 CSS 的合理使用并有助于识别可删除的无效 CSS 代码。

ID 和类名称

使用有意义或具有普遍性的 ID 和类名称。

不可使用意义含糊的 ID 和类名称,使用能够反映相应元素意义的名称或具有普遍性的通用名。

最好使用能够反映相应元素意义的具体名称,因为这些名称最易于理解且不易变更。

具有普遍性的通用名被用于与类似元素意义相仿的元素,主要起辅助作用。

不推荐:

.p-998 { 
    … 
} 

.btn-green { 
    … 
}

推荐:

.gallery { 
    …
} 

.btn-default { 
    … 
}

类型选择符

避免用类型选择器限定 ID 和类名称。

除非情况需要(例如,在辅助类型中),否则不要将元素名和 ID 或类名称同时使用。为提高性能,避免使用不必要的祖先选择符。

在 CSS 文件中使用 ID 也是较糟糕的做法,类别始终比名称更具优势,如果你需要给予某元素一个特殊的名称,请使用类别。( ID 的唯一优点是在存在数千个类似元素的页面上能保持较快的运行速度。)

不推荐:

ul#example { 
    … 
} 

div.error { 
    … 
}

推荐:

.example { 
    … 
} 

.error { 
    … 
}

简写属性

应使用简写。

CSS 可提供多种简写属性(例如,padding,而不是 padding-top、padding-bottom 等),应尽可能使用这些简写,但字体属性和在 Bootstrap 等框架中会覆盖其他同名属性的属性除外。

使用简写属性有助于提高代码的效率和易懂性。推荐在设置仅与字体 font 相关的属性时使用字体简写属性,但无需在进行小幅改动时使用。在使用字体简写属性时,请注意,如果未注明字体的大小和系列,浏览器会忽略整个字体声明。

不推荐:

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;

推荐:

border-top: 0; 
font: 100%/1.6 palatino, georgia, serif; 
padding: 0 1em 2em;

0和单位

去掉 0 值后面的单位。

不推荐:

margin: 0em; 
padding: 0px;

推荐:

margin: 0; 
padding: 0;

前导零

为方便阅读,十进制值中含有前导零。

不推荐:

font-size: .8em;

推荐:

font-size: 0.8em;

十六进制表示法

在可行时,使用三个十六进制表示法的字符。

不推荐:

color: #eebbcc;

推荐:

color: #ebc;

ID 和类名称分隔符

用连字符分隔 ID 和类名称中的字词(-)。

用连字符连接选择符中的词语和缩略词,以方便理解和扫描。

唯一的例外:在编写 BEM 样式 CSS 选择符时也可以使用下划线(_)。

不推荐:

.demoimage { 
    … 
} 

.errorStatus {
     …
}

推荐:

.demo-image { 
    … 
} 

.error-status { 
    … 
}

Hack

避免用户代理检测或 CSS Hack ——尝试另一种方法。

人们可能很想处理用户代理检测或特殊的 CSS 过滤器以及应变方案和非法入侵之间的样式差异。这两项措施均为实现和维护有效和可处理的代码库的最后方案。请考虑该样式是否对应用的性能至关重要,需要该样式的用户代理是否可以不采样该样式。

CSS 格式规则

代码块内容缩进

缩进所有代码块内容,即规则内的规则和声明,以反映层次结构、方便理解。

推荐:

@media screen, projection { 
    html { 
        background: #fff; 
        color: #444; 
    } 
}

声明标点

在所有声明后使用分号,以增加连贯性和延展性。

不推荐:

.test { 
    display: block; 
    height: 100px 
}

推荐:

.test { 
    display: block;
    height: 100px; 
}

属性名标点

所有属性名冒号后均需添加空格,但属性和冒号间不加空格,以增加连贯性。

不推荐:

font-weight:bold;
padding : 0;
margin :0;

推荐:

font-weight: bold;
padding: 0; 
margin: 0;

声明区标点

最后一个选择符和声明区起始处的左大括号之间需加空格。

不推荐:

.video-block{ 
    margin: 0; 
} 

.audio-block{ 
    margin: 0;
}

推荐:

.video-block { 
    margin: 0; 
} 

.audio-block { 
    margin: 0; 
}

选择符和声明分隔

所有选择符和声明均需另起一行。

不推荐:

h1, h2, h3 { 
    font-weight: normal; 
    line-height: 1.2; 
}

推荐:

h1, 
h2, 
h3 { 
    font-weight: normal; 
    line-height: 1.2; 
}

规则分隔

所有规则间均需加一个空行(两个换行符)。

推荐:

html { 
    background: #fff; 
} 

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

CSS 引号

属性选择符和属性值均需使用双引号,链接值( url())中不可使用双引号。

不推荐:

@import url("css/links.css"); 
html { 
    font-family: 'Open Sans', arial, sans-serif; 
}

推荐:

@import url(css/links.css); 
html { 
    font-family: "Open Sans", arial, sans-serif; 
}

CSS 元规则

区块注释

在可行时,用注释将样式表区块组合在一起,用新行分隔各区块。

推荐:

/* Header */
.header {
…
}

.header-nav {
…
}

/* Content */
.gallery {
…
}

.gallery-img {
…
}

/* Footer */
.footer {
…
}

.footer-nav {
…
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容

  • 什么是html? html是一种网页标记语言,叫超文本标记语言,我们平时上网所看到的所有网页均来自于html,英文...
    波段顶底阅读 8,343评论 2 7
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,600评论 18 139
  • 最近在看html基础,好吧,写点笔记,比较low见谅,反正我自己看懂就行了 CSS基础 1、css简介 casca...
    小龙是只猫阅读 591评论 0 1
  • 大家都说我性格恬静,遇事能推已及人,宽容体谅,温柔的样子真是可人! 很多时候,我浅浅一笑,接受这样的赞美,并按这样...
    张小妞Katey阅读 598评论 14 7