CSS书写规范

语法

  • 缩进统一(tab键或4个空格)
  • 每个属性声明末尾都要加分号
  • 对于属性值或颜色参数,省略小于 1 的小数前面的 0 (例如,.5代替 0.5;-.5px 代替 -0.5px)
  • 为选择器中的属性添加双引号,例如,input[type="text"]。只有在某些情况下是可选的,但是,为了代码的一致性,建议都加上双引号。
  • 避免为 0 值指定单位,例如,用 margin: 0; 代替 margin: 0px;。
  • 不要使用 @import引用css
  • 尽量少用'*'选择器
  • 选择器不要超过4层(在scss中如果超过4层应该考虑用嵌套的方式来写)
  • 不要在一个文件里出现两个相同的规则
  • 不允许有空的规则
  • 无前缀的标准属性应该写在有前缀的属性后面
  • 不要在一个文件里出现两个相同的规则;
  • 用 border: 0; 代替 border: none;
  • 给每一个表格和表单加上一个唯一的、结构标记id

空格

以下几种情况需要空格:

  • 每个声明块的左花括号前添加一个空格
  • 每条声明语句的 : 后应该插入一个空格
  • 选择器'>', '+', '~'前后
  • !important '!'前
  • @else 前后
  • 对于以逗号分隔的属性值,每个逗号后面都应该插入一个空格(例如,box-shadow)
  • 注释'/'后和'/'前
    以下几种情况不需要空格:
  • 属性名后
  • 多个规则的分隔符','前
  • important '!'后
  • 属性值中'('后和')'前
  • 行末不要有多余的空格
  • 不要在 rgb()、rgba()、hsl()、hsla() 或 rect() 值的内部的逗号后面插入空格。这样利于从多个属性值(既加逗号也加空格)中区分多个颜色值(只加逗号,不加空格)

空行

  • 文件最后保留一个空行
  • 为了获得更准确的错误报告,每条声明都应该独占一行
  • 为选择器分组时,将单独的选择器单独放在一行
  • 声明块的右花括号应当单独成行
  • 属性之间需要适当的空行

换行

以下几种情况不需要换行:

  • '{'前
    以下几种情况需要换行:
  • '{'后和'}'前
  • 每个属性独占一行
  • 多个规则的分隔符','后

属性声明顺序

  • 定位浮动
  • 盒模型
  • 边框圆角
  • 文字
  • visual

颜色

  • 颜色16进制用小写字母
  • 颜色16进制尽量用简写

媒体查询(Media query)的位置

  • 将媒体查询放在尽可能相关规则的附近。不要将他们打包放在一个单一样式文件中或者放在文档底部。如果你把他们分开了,将来只会被大家遗忘。下面给出一个典型的实例。

带前缀的属性

  • 当使用特定厂商的带有前缀的属性时,通过缩进的方式,让每个属性的值在垂直方向对齐,这样便于多行编辑。

单行规则声明

  • 对于只包含一条声明的样式,为了易读性和便于快速编辑,建议将语句放在同一行。对于带有多条声明的样式,还是应当将声明分为多行。

简写形式的属性声明

  • 在需要显示地设置所有值的情况下,应当尽量限制使用简写形式的属性声明。
  • 常见的属性简写包括:
  • font
  • background
  • transition
  • animation

注释

  • 注释统一用'/* */'
* /*
 * Modal header
 * Modal header
/*
 *文件用途说明
 *作者姓名
 *联系方式
 *制作日期
*/

class 命名

  • class 名称中只能出现小写字符和破折号(dashe)(不是下划线,也不是驼峰命名法)。破折号应当用于相关 class 的命名(类似于命名空间)(例如,.btn 和 .btn-danger)。
  • 避免过度任意的简写。.btn 代表 button,但是 .s 不能表达任何意思。
  • class 名称应当尽可能短,并且意义明确。
  • 使用有意义的名称。使用有组织的或目的明确的名称,不要使用表现形式(presentational)的名称。
  • 基于最近的父 class 或基本(base) class 作为新 class 的前缀。
  • 使用 .js-* class 来标识行为(与样式相对),并且不要将这些 class 包含到 CSS 文件中。

选择器

    • 对于通用元素使用 class ,这样利于渲染性能的优化。
    • 对于经常出现的组件,避免使用属性选择器(例如,[class^="..."])。浏览器的性能会受到这些因素的影响。
    • 选择器要尽可能短,并且尽量限制组成选择器的元素个数,建议不要超过 3 。
    • 只有在必要的时候才将 class 限制在最近的父元素内(也就是后代选择器)(例如,不使用带前缀的 class 时 -- 前缀类似于命名空间)。

代码组织

    • 以组件为单位组织代码段。
    • 制定一致的注释规范。
    • 使用一致的空白符将代码分隔成块,这样利于扫描较大的文档。
    • 如果使用了多个 CSS 文件,将其按照组件而非页面的形式分拆,因为页面会被重组,而组件只会被移动。

链接

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

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,711评论 18 139
  • CSS书写规范、顺序和命名规则 一、CSS书写顺序 1.位置属性(position, top, right, z-...
    三生三世小世界阅读 1,566评论 0 6
  • 一、CSS的命名方式: 1.结构化命名法:根据页面中板块的位置而命名,如上图中的content-left,这时如果...
    隔壁的UNCLE张阅读 1,374评论 0 4
  • 大部分前端er都没有按照良好的CSS书写规范来写CSS代码,这样会影响代码的阅读体验,这里总结一个CSS书写...
    芈子契阅读 888评论 0 2
  • 第十八章演唱会随想 时间慢慢磨平了痛,不是不痛,只是我累了。 毕业之前,乙鸢最喜欢的一个歌手要来我们学校开演唱会。...
    林嘉瑞阅读 771评论 0 6