这些准则是在研究新兴实践、想法和现有样式指南后制定的,包括

  1. OOCSS 编码标准
  2. Oneweb 样式指南
  3. 惯用 CSS

注释

主要部分

主要代码部分应使用大写命名,并包含在完整的注释块中,例如

/* ==========================================================================
   PRIMARY NAVIGATION
   ========================================================================== */

子部分

子部分应使用普通大小写命名,并包含在打开的注释块中。

/* Mobile navigation
   ========================================================================== */

详细注释

/**
 * Short description using Doxygen-style comment format
 *
 * The first sentence of the long description starts here and continues on this
 * line for a while finally concluding here at the end of this paragraph.
 *
 * The long description is ideal for more detailed explanations and
 * documentation. It can include example HTML, URLs, or any other information
 * that is deemed necessary or useful.
 *
 * @tag This is a tag named 'tag'
 *
 * TODO: This is a todo statement that describes an atomic task to be completed
 *   at a later date. It wraps after 80 characters and following lines are
 *   indented by 2 spaces.
 */

基本注释

/* Basic comment */

未编译的 LESS/Scss 注释

// These are stripped on compile.

CSS 选择器

仅使用类作为 CSS 选择器,绝不使用 ID,因为它们会对级联引入不必要的特异性。使用 ID 作为 CSS 选择器就像发射第一颗核弹;你开始了特异性战争,只能升级,后果不堪设想。

换句话说;不要使用西斯尊主,只需要两个风暴兵就足够了:CSS 特异性战争

类命名约定

使用连字符创建复合类名

/* Good - use dashes */
.compound-class-name {…}

/* Good - uses camelCase */
.compoundClassName {…}

/* Bad - uses underscores */
.compound_class_name {…}

/* Bad - does not use seperators */
.compoundclassname {…}

缩进

规则应缩进一个制表符(等于 4 个空格)

/* Good */
.example {
	color: #000;
	visibility: hidden;
}

/* Bad - all on one line */
.example {color: #000; visibility: hidden;}

对齐

左大括号必须与最后一个选择器位于同一行,并用空格隔开。右大括号必须位于其自身行,在最后一个属性之后,并缩进到与左大括号相同的级别。

/* Good */
.example {
    color: #fff;
}

/* Bad - closing brace is in the wrong place */
.example {
    color: #fff;
    }

/* Bad - opening brace missing space */
.example{
    color: #fff;
}

属性格式

每个属性必须位于其自身行,并缩进一个级别。冒号之前不应有空格,之后应有一个空格。所有属性都必须以分号结尾。

/* Good */
.example {
    background: black;
    color: #fff;
}

/* Bad - missing spaces after colons */
.example {
    background:black;
    color:#fff;
}

/* Bad - missing last semicolon */
.example {
    background: black;
    color: #fff
}

HEX 值

HEX 值必须以小写形式声明,并使用简写形式

/* Good */
.example {
    color: #eee;
}

/* Bad */
.example {
    color: #EEEEEE;
}

属性选择器

始终在属性选择器周围使用双引号。

/* Good */
input[type="button"] {
    ...
}

/* Bad - missing quotes */
input[type=button] {
    ...
}

/* Bad - using single quote */
input[type='button'] {
    ...
}

零值单位

零值不应带有单位。

/* Good */
.example {
   padding: 0;
}

/* Bad - uses units */
.example {
   padding: 0px;
}