• 豆瓣CSS开发规范


    源地址:https://docs.google.com/document/pub?id=17dKkWwdaKyNnkwswihHje2cfoMGqbSJLydTIxqFwlQU

    Douban CSS Code Guideline

    1. CSS浏览器支持标准

     

    WinXP

    Win7

    OS X

    IE9

    C

    C

     

    IE8

    A

    A

     

    IE7

    A

    A

     

    IE6

    A

    A

     

    Chrome7

    C

    C

    C

    Chrome6

    A

    A

    A

    Chrome3

    B

    B

    B

    Firefox4

    C

    C

    C

    Firefox3.6

    A

    A

    A

    Firefox3.5

    C

    C

     

    Firefox3

    C

    C

     

    Safari

    B

    B

    B

    Opera

    C

    C

    C

     

    (注:根据2010年11月10日数据整理)

    1. A级-交互和视觉完全符全设计的要求
    2. B级-视觉上允许有所差异,不破坏页面整体效果
    3. C级-可忽视视觉上的问题,但不防碍使用

    2. 尽可能的通过继承和层叠重用已有样式

    3. 根据新建样式的适用范围分为三级:全站级、产品级、页面级

    1. 3-1. 目前全站级的CSS文件仅有core.css和douban.css(向全站级CSS文件中添加规则参见4和5)。
    2. 3-2. 产品级CSS是指作用于某一垂直产品(如音乐、读书、电台等),文件放在css/下相应目录下。

     

    页面级指仅在一个或少量几个页面中用到。如果仅在一个页面中用到的采用内联方式嵌入于页面head里,多于两个页面的放到外联的CSS文件中,该文件再放到相应的产品目录下。

    4. core.css是全站基本样式。它需要放在所有CSS引用的最前面。它包括:标签reset、常用规则(链接、字体、隐藏、清浮动等)、布局、各种模块基本样式等

    参见:http://img3.douban.com/css/packed_core1.css

    5. 不要轻易改动全站级CSS。改动后,要经过全面测试

    6. 单条CSS规则的书写格式要求

    1. 6-1. 属性需要写在一行。需要在“{"和"}”前后加空格。

    .selector { property:value;property:value; }

    1. 6-2. 多个(>2)selector每个占一行:

    .selector1,
    .selector2,
    .selector3 { property:value;property:value; }

    1. 6-3. 兼容多个浏览器时,将标准属性写在后面,如:

    -webkit-border-radius:4px;-moz-border-radius:4px;border-radius: 4px;

    7. 将作用于不同模块的CSS规则集中放在一起,同时用注释说明

    注释的格式:

    /* mod: doulist */

    通用规则同样分类放在一起。通用规则在具体模块规则的前面。如:

    /* button */
    ...
    /* mod */
    ...
    /* nav */
    ...
    /* mod: events album */

    8. ID和Class命名。命名不要用缩写,单词间用"-"做为连接符

    1. 8-1. ID是用来标识具体模块,命名必须具体且唯一,由前缀和名字组成。不要滥用ID。如: #db-video-list。
    2. 8-2. Class是用来标识某一类型的元素,命名简洁表意清楚。如:.list。
    3. 8-3. 命名示例:

    坏:

    #rec
    .gray-link
    .broadsmr
    .pl

    好:

    #db-nav-main
    .infobox

    .item

    1. 8-4. 推荐使用的class名:

    表示状态

    .on, .active, .selected, .hili

    表示位置

    .first, .last, .main, .side

    表示结构

    .hd, .bd, .ft, .col, .section

    通用元素

    .tb, .frm, .nav, .list, .item, .tag, .pic, .info

     

    9. 尽量避免使用CSS Hack

    推荐使用下面的:

    区别属性:

    IE6

    _property:value

    IE6/7

    *property:value

    IE6/7/8/9

    property:value\9

    非IE6

    property//:value

     

    区别规则:

    IE6

    * html selector { ... }

    IE7

    *:first-child+html selector { ... }

    非IE6

    html>body selector { ... }

    firefox only

    @-moz-document url-prefix() { ... }

    saf3+/chrome1+

    @media all and (-webkit-min-device-pixel-ratio:0) { ... }

    opera only

    @media all and (-webkit-min-device-pixel-ratio:10000),not all and (-webkit-min-device-pixel-ratio:0) { ... }

    iPhone/mobile webkit

    @media screen and (max-device- 480px) { ... }

     

    10. 使用after或overflow的方式清浮动

    11. 内联和外联的CSS都必须放在页面的head里。顺序是:全站级CSS,产品级CSS,页面级(外联)CSS,页面级(内联)CSS,内联CSS

    12. 避免使用低效的选择器

    如:
    body > * {...}
    ul > li > a {...}
    #footer > h3 {...}
    ul#top_blue_nav {...}
    #searbar span.submit a { ... }

    13. 尽量避免使用filter

    14. 不要直接修改标签的样式

    如: div { ... }

    15. 不要在标签上直接写样式

    如:<div style="margin-bottom:30px;">

    16. 不要在CSS中使用 expression

    17. 不要在CSS中使用 @import

    18. 不要在CSS中使用 !important

    19. 绝对不要在CSS中使用 "*" 选择符

     

    最后更新日期:2010年11月17日

  • 相关阅读:
    C#里的async和await的使用
    解决 .NET CORE3.0 MVC视图层不即时编译
    【转】CSS实现自适应分隔线的N种方法
    iscrolljs 看API 回顾以前开发中失误
    自由了-和过去说再见
    js 性能基准测试工具-告别可能、也许、大概这样更快更省
    dom事件不求甚解,色解事件捕获和冒泡
    百度mobile UI组件GMU demo学习1-结构和初始化
    自己收集原生js-2014-2-23
    如何在电脑上测试手机网站(补充)和phonegap
  • 原文地址:https://www.cnblogs.com/sniper007/p/2251307.html
Copyright © 2020-2023  润新知