• css编写规范


    一、注释规范 

    1、文件顶部注释(推荐使用) 

    Css代码 
    1. /*  
    2. * @description: 中文说明  
    3. * @author: name  
    4. * @update: name (2013-04-13 18:32)  
    5. */  


    2、模块注释 

    模块注释必须单独写在一行 

    Css代码 
    1. /* module: module1 by 张三 */  
    2. …  
    3. /* module: module2 by 张三 */  


    3、单行注释与多行注释 

    单行注释可以写在单独一行,也可以写在行尾,注释中的每一行长度不超过40个汉字,或者80个英文字符。 

    Css代码 
    1. /* this is a short comment */  


    多行注释必须写在单独行内 

    Css代码 
    1. /*  
    2. * this is comment line 1.  
    3. * this is comment line 2.  
    4. */  


    4、特殊注释 

    用于标注修改、待办等信息 

    Css代码 
    1. /* TODO: xxxx by name 2013-04-13 18:32 */  
    2. /* BUGFIX: xxxx by name 2012-04-13 18:32 */  


    5、区块注释 

    对一个代码区块注释(可选),将样式语句分区块并在新行中对其注释。 

    Css代码 
      1. /* Header */  
      2. /* Footer */  
      3. /* Gallery */  

    二、编码规范

    1. tab键用(必须)四个空格代替

    2. 每个样式属性后(必须)加 ";"

    方便压缩工具"断句"。

    3. Class命名中(禁止)出现大写字母,(必须)采用” - “对class中的字母分隔,如:

     /* 正确的写法 */
     .hotel-title {
         font-weight: bold;
     }
    
     /* 不推荐的写法 */
     .hotelTitle {
         font-weight: bold;
     }
    • 用"-"隔开比使用驼峰是更加清晰。
    • 产品线-产品-模块-子模块,命名的时候也可以使用这种方式(@Artwl)

    4. 空格的使用,以下规则(必须)执行:

     .hotel-content {
         font-weight: bold;
     }
    • 选择器与 之前(必须)要有空格
    • 属性名的 后(必须)要有空格
    • 属性名的 前(禁止)加空格

    一个原因是美观,其次IE 6存在一个bug, 戳bug

    5.多选择器规则之间(必须)换行

    当样式针对多个选择器时每个选择器占一行

     /* 推荐的写法 */
     a.btn,
     input.btn,
     input[type="button"] {
         ......
     }

    6. (禁止)将样式写为单行, 如

    .hotel-content {margin: 10px; background-color: #efefef;}

    单行显示不好注释,不好备注,这应该是压缩工具的活儿~

    7. (禁止)向 后添加单位, 如:

    .obj {
        left: 0px;
    }

    只是为了统一。记住,绿色字表强调,不表强制!

    8. (禁止)使用css原生import

    使用css原生import有很多弊端,比如会增加请求数等....


    9. 不要轻易改动全站级CSS和通用CSS库。改动后,要经过全面测试。8. 避免使用filter

    10. 避免在CSS中使用expression

    11. 避免过小的背景图片平铺,小图片(必须)sprite 合并

    12. 层级(z-index)必须清晰明确,页面弹窗、气泡为最高级(最高级为999),不同弹窗气泡之间可在三位数之间调整;普通区块为10-90内10的倍数;区块展开、弹出为当前父层级上个位增加,禁止层级间盲目攀比。

    13. 背景图片请尽可能使用sprite技术, 减小http请求, 考虑到多人协作开发, sprite按照模块、业务、页面来划分均可。

    14. (推荐)属性的书写顺序, 举个例子:

    .hotel-content {
         /* 定位 */
         display: block;
         position: absolute;
         left: 0;
         top: 0;
         /* 盒模型 */
          50px;
         height: 50px;
         margin: 10px;
         border: 1px solid black;
         / *其他* /
         color: #efefef;
     }
    • 定位相关, 常见的有:display position left top float 等
    • 盒模型相关, 常见的有:width height margin padding border 等
    • 其他属性

        按照这样的顺序书写可见提升浏览器渲染dom的性能

    15. (推荐)当编写针对特定html结构的样式时,使用元素名 + 类名

    /* 所有的nav都是针对ul编写的 */
     ul.nav {
         ......
     }

    ".a div"和".a div.b",为什么后者好?如果需求有所变化,在".a"下有多加了一个div,试问,开始的样式是不是会影响后来的div啊~

    16. (推荐)IE Hack List

     /* 针对ie的hack */
     selector {
         property: value;     /* 所有浏览器 */ 
         property: value9;   /* 所有IE浏览器 */ 
         property: value;   /* IE8 */
         +property: value;    /* IE7 */
         _property: value;    /* IE6 */
         *property: value;    /* IE6-7 */
     }

    当使用hack的时候想想能不能用更好的样式代替

    17. (不推荐)ie使用filter,( 禁止)使用expression

    这里主要是效率问题,应该当格外注意,咱们要少用烧CPU的东西~ 

    18. (禁止)使用行内(inline)样式

    <p style="font-size: 12px; color: #FFFFFF">靖鸣君</p>

    像这样的行内样式,最好用一个class代替。又如要隐藏某个元素,可以给他加一个class

    .hide {
        display: none;
    }

    尽量做到样式和结构分离~

    19. (推荐)reset.css样式

    推荐网站:http://www.cssreset.com/

    20.(禁止)使用"*"来选择元素

    /*别这样写*/
    * {
        margin: 0;
        padding: 0;
    }

    这样写是没有必要的,一些元素在浏览器中默认有margin或padding值,但是只是部分元素,没有必要将所有元素的margin、padding值都置为0。

    21. 链接的样式,(务必)按照这个顺序来书写

    a:link -> a:visited -> a:hover -> a:active
  • 相关阅读:
    分布式系统的架构思路
    Dubbo分布式服务框架的简单理解
    Java Worker 设计模式
    进程和线程
    alibaba-Java开发手册心得-一编程规约-6并发处理
    swagger的简单了解
    alibaba-Java开发手册心得-一编程规约-5集合处理
    serialVersionUID的简单理解
    java序列化对象简单理解
    最简单的调用freetype库实现在控制台输出文字显示
  • 原文地址:https://www.cnblogs.com/liyunhua/p/4537058.html
Copyright © 2020-2023  润新知