日期:2013-12-26 浏览次数:21064 次
最近终于有心境把我的CSS重构一下。。由于这种写法的一部分是我本人揣摩出来的,带有偏好的做法。
仅供参考。如果采用后被同事取笑,老板罚款,本人概不担任。
我重构的时候,学习了一些行业标准的做法。次要思路来源于以下一些,比如Rest,Grid,Dry等等(不明含义者请自行Google)。
1,Css文件的组织。
Css文件采用按照Rest中的资源来进行组织, 比如User,那就有一个user.css,如果这个资源的比较复杂, 可以进一步分解成user_new,user_edit等等。某些共用的组件,可以再分出来,比如toolbar.css
2,根选择器使用class,其他的尽量使用原生选择器,,根选择器普通是网页Grid系统中大块结构。
例子: table.user td span{font-size:12px}
即便使用class,也带上原生标签
例子: table.user td span.user{font-size:12px}
这样做的最次要的缘由是给class取名实在在是头痛。名字还容易冲突。取名的时候要考虑语义,其实我们只不过为了美化一下显示。采用了我这种做法的Css文件,不看Html源码, 我也能知道我正在干什么了。
3,文本标签的使用。
很多网站使用span,由于我避免使用class,那么同一层级span只能使用一次。那尽量使用<i></i><em></em><strong></strong><cite></cite>,如果是不同层级,那么多种标签组合也够用了
例如 <div class="score"><em>张三</em>购置了<strong>3个</strong>面包</div>
绝对的css就是 div.score em{color:red}
div.scroe strong{color:greeen}
块元素,要灵活运用<h1>到<h6>他们和Div是等价的。
4,使用class的情况
a,当某个块是Grid中的基本块的时候 b,供javascript调用的时候,c,万不得已的情况下。也就是说利用原生选择器就能处理的问题,就不要用class。
5,美工只担任大括号里面的内容
比如 div.score em{color:red; font:12px}中美工只担任调整{}中的内容,程序员担任{}前的内容。由于不轻易引入class,大家比较容易沟通。
6,任务流程。
1,美工利用Grid系统做出设计图
2,设计图中的基本块的命名,用来做根选器的class名。
3,程序员将做好的html和css交给美工, css中的大括号内容程序员可以不写或者少写。
4,美工只调整css中{}的内容,直到满意为止, 如果发觉{}前的内容不合理,和程序员商量。(留意,由于不要求美工看源代码,只需求看Css, 而css中次要是原生标签,所以基天性看懂,这样不管是asp.net,jsp,php都不需求美工关怀了)
基本就这么多了, 其他的一时也想不起来,欢迎指出问题和缺点。