CSS通用编码规范

总结一部分前端编码规范,CSS部分先奉上,大多比较通用,应该是主流方式吧。

1 前言

本文档的目标是使 CSS 代码在团队中风格保持一致,容易被理解和被维护。

尽管本文档是针对 CSS 设计的,但是在使用各种 CSS 的预编译器(如 less、sass、stylus 等)时,适用的部分也应尽量遵循本文档的约定。

2 CSS命名方式

  • 保持 class 命名为全小写,可以使用短划线(不要使用下划线和 camelCase 驼峰式命名)
  • 短划线应该作为相关类的自然间断。(例如,.btn 和 .btn-blue)。
  • 避免过度使用简写。.btn 可以很好地描述 button,但是 .t 不能代表任何元素。
  • class 的命名应该尽量短,也要尽量明确。
  • 使用有意义的名称;使用结构化或者作用目标相关,而不是抽象的名称。
  • 全局通用命名时,需要加特定前缀如 `zk-wrap`
  • 局部命名时,可以根据模块内容或就近父节点为前缀

3 CSS基础设施

  • 编码格式:文件编码格式 `UTF-8` 编码,在CSS文件顶格位置申明文档的编码charset
  @charset "utf-8";

4 编码风格

  • 缩进方式:使用 4 个空格做为一个缩进层级,不允许使用 2 个空格 或 tab 字符。
  • 空格

    • 选择器 与 { 之间必须包含空格。
    • 属性名 与之后的 : 之间不允许包含空格, : 与 属性值 之间必须包含空格。
    • 列表型属性值 书写在单行时,, 后必须跟一个空格。
  • 选择器

    • 如无必要,不得为 idclass 选择器添加类型选择器进行限定。
    • 选择器的嵌套层级应不大于 3 级,位置靠后的限定条件应尽可能精确
    • >+~ 选择器的两边各保留一个空格。
  • 属性

    • 属性定义必须另起一行。
    • 属性定义后必须以分号结尾。
    • 在可以使用缩写的情况下,尽量使用属性缩写。
    • 属性前缀,标准属性放在最后,按冒号对齐方便阅读,也便于在编辑器内进行多行编辑。

      .box {
      -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
      box-sizing: border-box;
      }
  • 属性书写顺序: 位置 > 盒模型 > 排版 > 外观 > 其它

    • Positioning 位置

      // 包括 float、display、overflow……
      position: absolute;
      top: 50px;
      left: 0;
      overflow-x: hidden;
    • Box model 盒模型

      border: 1px solid #000
      margin: 20px;
      padding: 15px;
      width: 240px;
      height: 160px;
    • Typographic 排版

      font-size: 16px;
      line-height: 32px;
      text-align: left;
      word-wrap: break-word
    • Visual 外观

      background: #fff url(images/logo.png) no-repeat;
      color: #000;
  • 清除浮动
    当子内容 float 浮动后,父级标签一定要清除浮动,通过对伪类设置 clear 的方式进行 clearfix。尽量不使用增加空标签的方式。[参看]

    // css
    .clearfix::after {
    clear: both;
    content: "";
    display: table;
    }
  • 颜色

    • RGB颜色值必须使用十六进制记号形式 #rrggbb。不允许使用 rgb()
    • 颜色值可以缩写时,必须使用缩写形式, border-color: #ccc;
    • 颜色值不要使用英文命名色值,如 color:red
    • 颜色值最好全部采用小写字符
  • 数值

    • 当数值为0时,可以省略单位, padding: 0; margin: 0;
    • 当数值为 0 - 1 之间的小数时,省略整数部分的 0,如 opacity: .8;
  • z-index 一般以 5或10 为一个步长(如50,60,70),方便以后增加或修改

  • !important' 尽量不使用 !important 声明。

  • 字体

    • font-family 属性中的字体族名称应使用字体的英文 Family Name,其中如有空格,须放置在引号中。
    • 所谓英文 Family Name,为字体文件的一个元数据,常见名称如下:

      字体 操作系统 Family Name
      宋体 (中易宋体) Windows SimSun
      黑体 (中易黑体) Windows SimHei
      微软雅黑 Windows Microsoft YaHei
      微软正黑 Windows Microsoft JhengHei
      华文黑体 Mac/iOS STHeiti
      冬青黑体 Mac/iOS Hiragino Sans GB
      文泉驿正黑 Linux WenQuanYi Zen Hei
      文泉驿微米黑 Linux WenQuanYi Micro Hei
      //css用法
      h1 {
      font-family: "Microsoft YaHei";
      }
  • 字号

    • 需要在 Windows 平台显示的中文内容,其字号应不小于 12px
  • 字重

    • CSS 的字重分 100 – 900 共九档,但目前受字体本身质量和浏览器的限制,实际上支持 400 和 700 两档,分别等价于关键词 normal 和 bold
  • 行高

    • line-height 默认全局定义为 1.5 比较舒适,可根据实际情况调整
  • Hack 针对某个浏览器写的样式或某个浏览器BUG的样式,必须加上注释说明

    // css
    .clearfix{
    zoom:1; /* for IE6 IE7 */
    }

CSS通用编码规范的更多相关文章

  1. CSS命名规范

    DIV+CSS规范命名大全集合 前端人员必看CSS命名规范 整理: 文件名必须由小写字母.数字.中划线组成 ).所有的命名最好都小写,一律采用小写加中划线的方式,不允许使用大写字母或 _2).属性的值 ...

  2. CSS书写规范、命名规范、网易CSS框架NEC

    网易CSS框架NEC:http://nec.netease.com/ NEC框架的CSS规范:  CSS规范 - 分类方法 CSS规范 - 命名规则 CSS规范 - 代码格式 CSS规范 - 优化方案 ...

  3. html和css书写规范

    HTML 规范 分离的标记.样式和脚本 结构.表现.行为分离 在可能情况下验证你的标记 使用编辑器验证你的标记是否正确,一般编辑器都自带有这个功能. 技术不支持的时候使用备胎,如canvas 编码格式 ...

  4. html,css命名规范 (转)

    HTML+CSS命名规范总结 1.HTML部分 1.1添加必须的utf-8的字符集,并且使用HTML5的简洁 方式: <meta charset="utf-8"> 1. ...

  5. CSS书写规范

    一.CSS书写顺序 1.位置属性(position,top,right,z-index,display,float等) 2.大小(width,height,padding,margin) 3.文字系列 ...

  6. 推荐大家使用的CSS书写规范、顺序

    写了这么久的CSS,但大部分前端er都没有按照良好的CSS书写规范来写CSS代码,这样会影响代码的阅读体验,这里总结一个CSS书写规范.CSS书写顺序供大家参考,这些是参考了国外一些文章以及我的个人经 ...

  7. 分享给大家的CSS书写规范、顺序

    写了这么久的CSS,但大部分前端er都没有按照良好的CSS书写规范来写CSS代码,这样会影响代码的阅读体验,这里总结一个CSS书写规范.CSS书写顺序供大家参考,这些是参考了国外一些文章以及我的个人经 ...

  8. CSS书写规范及顺序

    CSS书写顺序 1.位置属性(position, top, right, z-index, display, float等)2.大小(width, height, padding, margin)3. ...

  9. web前端开发CSS命名规范参考

    做为一个web前端工程师,每天接触HTML.css就像吃饭一样,但是作为一名合作.优秀的web前端工程师,对DIV+CSS命名还是有一定的规范的,本文整理了一份web前端开发中DIV+CSS各种命名规 ...

随机推荐

  1. Matlab 之meshgrid, interp, griddata 用法和实例

    http://blog.sina.com.cn/s/blog_67f37e760101bu4e.html 实例结果http://wenku.baidu.com/link?url=SiGsFZIxuS1 ...

  2. stack的应用

    STL除了给我们提供了一些容器(container)以外,还给我们提供了几个容器适配器(container adapters),stack便是其中之一 看过STL源码的人都知道,stack其实是内部封 ...

  3. 弹飞DZY(思维,打表,还没过全,先放着)

    弹飞DZYDescription某天,机智的ZZC发明了一种超级弹力装置,为了在他的朋友DZY面前显摆,他邀请DZY一起玩个游戏.游戏一开始,ZZC在地上沿着一条直线摆上n个装置,每个装置设定初始弹力 ...

  4. NYOJ306 走迷宫(dfs+二分搜索)

    题目描写叙述 http://acm.nyist.net/JudgeOnline/problem.php?pid=306 Dr.Kong设计的机器人卡多非常爱玩.它经常偷偷跑出实验室,在某个游乐场玩之不 ...

  5. Android建立模拟器进行调试

    安装好android开发环境后.用到下面几个命令.android, adb, emulator android - 最主要的android命令.能够进行sdk更新,列出设备源,生成虚拟设备等. adb ...

  6. IOS系列——NStimer

    Timer经常使用的一些东西 1. 初始化 timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@select ...

  7. POJ 2342 树形DP入门题

    有一个大学的庆典晚会,想邀请一些在大学任职的人来參加,每一个人有自己的搞笑值,可是如今遇到一个问题就是假设两个人之间有直接的上下级关系,那么他们中仅仅能有一个来參加,求请来一部分人之后,搞笑值的最大是 ...

  8. 1.一步一步学c#(一):.NET体系结构(知识点)

    一.C#和.NET关系     1. 首先C#语言有两个很重要的方面:第一它是为了Microsoft的.NET Framework的结合而设计的,其次它是一种为问题而设计解决问题的方法的语言,它有很多 ...

  9. iOS RTMP 视频直播开发笔记(1) – 采集摄像头图像

    1. 采集硬件(摄像头)视频图像 这里简单说下 iOS 的摄像头采集. 首先初始化AVCaptureSession,说到Session,有没有人想到AVAudioSession呢? // 初始化 AV ...

  10. 原生js判断某个元素是否有指定的class名的几种方法

    [注意]以下方法只对class只有一个值的情况下操作 ************************************************************* 结构部分: <d ...