CSS规范

一.命名规范BEM(Block Element Modifier)

1.Block name

-- 实体名称中的单词之间用连字符分隔(-)

HTML

<div class="menu">...</div>
<div class="menu-name">...</div>

CSS

.menu { color: red; }
.menu-name { color: red; }
2.Element name

-- 元素名与块名之间用双下划线分隔(__)

-- 需要注意的是不要出现block__elem1__elem2类似的命名,因为元素总是块的一部分,而不是另一个元素的。

HTML

<div class="menu">
...
<span class="menu__item"></span>
</div>

CSS

.menu__item { color: red; }
3.Block modifier name

-- 修饰符与块或元素的名称之间用双连字符分隔(--)

-- 修饰语的值与其名称之间用双连字符分隔(--)

HTML

<div class="menu menu--hidden"> ... </div>
<div class="menu menu--theme--islands"> ... </div>

CSS

.menu--hidden { display: none; }
.menu--theme--islands { color: green; }
Example:

HTML

<header class="header">
<img class="logo">
<form class="search-form">
<input class="search-form__input search-form__input--focus">
<button class="search-form__button search-form__button--size--s"></button>
</form>
<ul class="lang-switcher">
<li class="lang-switcher__item">
<a class="lang-switcher__link" href="url">en</a>
</li>
<li class="lang-switcher__item">
<a class="lang-switcher__link" href="url">ru</a>
</li>
</ul>
</header>

CSS

/* 块命名规则1:block */
/* header Block */
.header{
...
} /* 块命名规则2:block-name */
/* search-from Block */
.header .search-form{
...
} /* 元素命名规则:block-name__element-name */
/* lang-switcher__item Element */
.lang-switcher .lang-switcher__item{
...
} /* 修饰符命名规则1:block-name__element-name--modifier-status */
/* search-form__input--focus Modifier */
.search-form .search-form__input--focus{
...
} /* 修饰符命名规则2: block-name__element-name--modifier-name--modifier-value */
/* search-form__button--size--s Modifier */
.search-form__button--size--s{
...
}

二.注释规范

1.单行注释

注释内容第一个字符和最后一个字符都是一个空格字符,单独占一行,行与行之间相隔一行。

推荐

/* Comment Text */
.sd-style{} /* Comment Text */
.sd-style{}

不推荐

/* Comment Text */
.sd-style{} .sd-style{}/* Comment Text */
2.模块注释

注释内容第一个字符和最后一个字符都是一个空格字符,/* 与 模块信息描述占一行,多个横线分隔符-与/占一行,行与行之间相隔两行*

推荐

/* Module A
---------------------------------------------------------------- */
.mod_a {} /* Module B
---------------------------------------------------------------- */
.mod_b {}

不推荐

/* Module A
---------------------------------------------------------------- */
.mod_a {}
/* Module B
---------------------------------------------------------------- */
.mod_b {}
3.文件信息注释
@charset "UTF-8";
/**
* @desc File Info
* @author Author Name
* @date 2015-10-10
*/

三.代码风格

1.代码格式化

样式书写一般有两种:一种是紧凑格式 (Compact)

.sd-style{display: block;width: 50px;}

一种是展开格式(Expanded)

.sd-style{
display: block;
width: 50px;
}

我们约定统一使用展开格式书写样式

2.代码大小写
/* 推荐 */
.jdc{
display:block;
} /* 不推荐 */
.JDC{
DISPLAY:BLOCK;
}
3.选择器
  • 尽量少用通用选择器 *
  • 不使用 ID 选择器
  • 不使用无具体语义定义的标签选择器
/* 推荐 */
.sd-style {}
.sd-style li {}
.sd-style li p{} /* 不推荐 */
*{}
#sd-style {}
.sd-style div{}
4.属性书写顺序

建议遵循以下顺序:

  • 布局定位属性:display / position / float / clear / visibility / overflow
  • 自身属性:width / height / margin / padding / border / background
  • 文本属性:color / font / text-decoration / text-align / vertical-align / white- space / break-word
  • 其他属性(CSS3):content / cursor / border-radius / box-shadow / text-shadow / background:linear-gradient …
.sd-style {
display: block;
position: relative;
float: left;
width: 100px;
height: 100px;
margin: 0 10px;
padding: 20px 0;
font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;
color: #333;
background: rgba(0,0,0,.5);
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
-o-border-radius: 10px;
-ms-border-radius: 10px;
border-radius: 10px;
}
5.CSS3浏览器私有前缀写法

CSS3 浏览器私有前缀在前,标准前缀在后

.sd-style {
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
-o-border-radius: 10px;
-ms-border-radius: 10px;
border-radius: 10px;
}

前端代码规范-CSS的更多相关文章

  1. web前端代码规范——css代码规范

    Bootstrap CSS编码规范 语法 用两个空格来代替制表符(tab) -- 这是唯一能保证在所有环境下获得一致展现的方法. 为选择器分组时,将单独的选择器单独放在一行. 为了代码的易读性,在每个 ...

  2. Web 前端代码规范

    Web 前端代码规范 最后更新时间:2017-06-25 原始文章链接:https://github.com/bxm0927/web-code-standards 此项目用于记录规范的.高可维护性的前 ...

  3. eslint+prettier+husky+lint-staged 统一前端代码规范

    eslint+prettier+husky+lint-staged 统一前端代码规范 遵循编码规范和使用语法检测,可以很好的提高代码的可读性,可维护性,并有效的减少一些编码错误. 1.终极目标 团队中 ...

  4. Web前端代码规范

    新增:http://materliu.github.io/code-guide/#project-naming HTML 原则1.规范 .保证您的代码规范,保证结构表现行为相互分离.2.简洁.保证代码 ...

  5. idataway_前端代码规范

    1.前后端json对接的规范. 前后端的json代码规范 result ={ success:”true”,//true表示成功,false表示失败. data:{}, //数据 errorCode: ...

  6. 百度前端代码规范:CSS

    1.代码风格 1.1 文件 [建议] CSS 文件使用无 BOM 的 UTF-8 编码. 1.2 缩进 [强制] 使用 4 个空格做为一个缩进层级,不允许使用 2 个空格 或 tab 字符. 1.3 ...

  7. Web前端代码规范与页面布局

    一.    规范目的: 为提高工作效率,便于后台人员添加功能及前端后期优化维护,输出高质量的文档,在网站建设中,使结构更加清晰,代码简明有序,有一个更好的前端架构,有利于SEO优化.   二.     ...

  8. web前端代码规范 - HTML代码规范

    Bootstrap HTML编码规范 本文转载自w3cschool. 由于bootstrap得到了世界的认可,因此,此规范用于规范html代码有一定的说服力. 交流qq群:164858883.欢迎各位 ...

  9. 腾讯alloyteam团队前端代码规范

    来源于:http://alloyteam.github.io/CodeGuide/ 命名规则 项目命名 全部采用小写方式, 以下划线分隔. 例:my_project_name 目录命名 参照项目命名规 ...

随机推荐

  1. Django2.0 分页的应用

    #分页例子from django.core.paginator import Paginatordef blog_list(request):      blog_all_list = models. ...

  2. 用Python爬取小说《一念永恒》

    我们首先选定从笔趣看网站爬取这本小说. 然后开始分析网页构造,这些与以前的分析过程大同小异,就不再多叙述了,只需要找到几个关键的标签和user-agent基本上就可以了. 那么下面,我们直接来看代码. ...

  3. 基于【 MySql 】二 || mysql详细学习笔记

    mysql重点学习笔记 /* Windows服务 */ -- 启动MySQL net start mysql -- 创建Windows服务 sc create mysql binPath= mysql ...

  4. php框架——laravel

    准备工作:见php语法篇末尾环境部署 一.[创建一个表+插入数据]:手动创建或者执行sql语句 DROP TABLE IF EXISTS `tb_business`; CREATE TABLE IF ...

  5. mamcached+(magent+keepalived高可用)搭建及理论概述

    目录 一.理论概述 工作流程 二.部署 环境 环境概述 部署 三.测试 四.总结 一.理论概述 Memcached服务器端与PHP-Memcache客户端安装配置_服务器应用_Linux公社-Linu ...

  6. selenium模拟H5触摸滑动之-TouchAction

    最近做移动端H5页面的自动化测试时候,需要模拟一些上拉,下滑的操作,最初考虑使用使用selenium ActionChains来模拟操作,但是ActionChains 只是针对PC端程序鼠标模拟的一系 ...

  7. hive之建立分区表和分区

    1. 建立分区表 create table 单分区表:其中分区字段是partdate,注意分区字段不能和表字段一样,否则会报重复的错 create table test_t2(words string ...

  8. Nginx突破高并发的性能优化 - 运维笔记

    在日常的运维工作中,经常会用到nginx服务,也时常会碰到nginx因高并发导致的性能瓶颈问题.今天这里简单梳理下nginx性能优化的配置(仅仅依据本人的实战经验而述,如有不妥,敬请指出~) 一.这里 ...

  9. linux网络编程之socket编程(十一)

    今天继续学习socket编程,这次主要是学习超时方法的封装,内容如下: ①.alarm[不常用,了解既可] 它的实现思路是这样的: 但是这种方案有一定的问题,因为闹钟可能会作为其它的用途,这时所设置的 ...

  10. DEVC++如何调试代码

    DEVC++小技巧 学习C语言的同学大多都会使用DEVC++这个软件,但是在使用的时候会发现是不可以调试的,因为我们的软件默认是将调试关闭了的.下面是调试的具体方法. 点击窗口的工具按钮 点击编辑按钮 ...