一、CSS分类方法:

  1. 公共型样式
  2. 特殊型样式
  3. 皮肤型样式
    并以此顺序引用
 <link href="assets/css/global.css" rel="stylesheet" type="text/css"/>
<link href="assets/css/index.css" rel="stylesheet" type="text/css"/>
<link href="assets/css/skin.css" rel="stylesheet" type="text/css"/>

二、CSS命名规则

  1. 使用类选择器,放弃ID选择器
  2. NEC特殊字符:"-"连字符
  3. 分类的命名方法:使用单个字母+"-"为前缀
    布局(grid)(.g-);模块(module)(.m-);元件(unit)(.u-);功能(function)(.f-);皮肤(skin)(.s-);状态(.z-)。
     后代选择器命名
    1. 布局(grid)(.g-):将页面分割为几个大块,通常有头部、主体、主栏、侧栏、尾部等!
    2. 模块(module)(.m-):通常是一个语义化的可以重复使用的较大的整体!比如导航、登录、注册、各种列表、评论、搜索等!
    3. 元件(unit)(.u-):通常是一个不可再分的较为小巧的个体,通常被重复用于各种模块中!比如按钮、输入框、loading、图标等!
    4. 功能(function)(.f-):为方便一些常用样式的使用,我们将这些使用率较高的样式剥离出来,按需使用,通常这些选择器具有固定样式表现,比如清除浮动等!不可滥用!
    5. 皮肤(skin)(.s-):如果你需要把皮肤型的样式抽离出来,通常为文字色、背景色(图)、边框色等,非换肤型网站通常只提取文字色!非换肤型网站不可滥用此类!
    6. 状态(.z-):为状态类样式加入前缀,统一标识,方便识别,她只能组合使用或作为后代出现(.u-ipt.z-dis{},.m-list li.z-sel{}),具体详见命名规则的扩展相关项。
  4. 不以单个字母+"-"为前缀且长度大于等于2的类选择器为后代选择器
    不允许单个字母的类选择器出现
  5. 相同语义的不同类命名
    直接加数字或字母区分即可(如:.m-list、.m-list2、.m-list3等)

模块和元件的扩展类的命名方法

当A、B、C、...它们类型相同且外形相似区别不大,那么就以它们中出现率最高的做成基类,其他做成基类的扩展。

方法:+“-”+数字或字母(如:.m-list的扩展类为.m-list-1、.m-list-2等)。

补充:基类自身可以独立使用(如:class="m-list"即可),扩展类必须基于基类使用(如:class="m-list m-list-2")。

三、代码格式

  1. 选择器、属性和值都使用小写
  2. 最后一个值也以分号结尾
  3. 省略值为0时的单位
  4. 使用单引号
根据属性的重要性按顺序书写
显示属性、自身属性、文本属性和其他修饰

四、优化

如果CSS可以做到,就不要使用JS

五、注意

  • .class{}

    不要以一个没有类别的样式作为主选择器,这样的选择器只能作为后代选择器使用,比如.m-xxx .class{}。

  • 选择器并不需要完整反映结构嵌套顺序,相反,能简则简。
  • 扩展类必须和其基类同时使用于同一个节点。
    错误:class="g-xxx g-yyy-1" class="m-xxx-1" class="u-xxx u-yyy-1" class="xxx-yyy"。
    正确:class="g-xxx g-xxx-1" class="m-xxx m-xxx-1" class="u-yyy u-yyy-1" class="xxx xxx-yyy"。

最新文章

  1. JSP网站开发基础总结《六》
  2. ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(九) 之 用 Redis 实现用户在线离线状态消息处理(一)
  3. FreeMarker模板语法
  4. Java 多线程(1)-Thread和Runnable
  5. BigInteger
  6. ECSTORE2.0 定时任务配置
  7. bzoj1643 [Usaco2007 Oct]Bessie&#39;s Secret Pasture 贝茜的秘密草坪
  8. 【典型错误】The type java.lang.Object cannot be resolved.
  9. C语言新学备忘_1
  10. PAT (Advanced Level) 1060. Are They Equal (25)
  11. 201521123005《java程序设计》第三周学习总结
  12. centos基本命令
  13. JMeter通过beanShell脚本生成随机手机号
  14. 数据库学习之数据库增删改查(另外解决Mysql在linux下不能插入中文的问题)(二)
  15. 5.3 将users表添加到xadmin后台
  16. 使用Python 、 go 语言测试rabbitmq的工作机制
  17. Java泛型中extends和super的理解
  18. 福大软工1816:Alpha(6/10)
  19. 数学:拓展BSGS
  20. Vue 简单的总结四(项目流程,DIY脚手架、vue-cli的使用)

热门文章

  1. .net Mongo Driver 1.0与2.0的对比与2.0的优化
  2. 第一百二十九节,JavaScript,理解JavaScript库
  3. angular1 实现页面切换及tag页面
  4. Eclipse/MyEclipse 安裝後應該更改的設置
  5. js ajax 调试
  6. 希腊字母、拉丁字母、Markdown、拼写与读音中英对照表
  7. scip学习
  8. 解决 maven项目问题 An error occurred while filtering resources
  9. pack://application:,,,/
  10. 自定义报表开发(HTML/XML)