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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

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