日期:2014-05-16  浏览次数:20609 次

CSS模块化(六) 模块化设计

6. 模块化设计

6.1 样式的作用域──页面重构中的模块化设计(一)

模块化设计我已经提过很多了,都是跟模块化相关的,不过之前一直没有讲到具体实现方面的内容,只是一些思维。这次重点讲一下实现方面的内容,权当到目前为止我对模块化的一些总结整理。

要做好模块化,我觉得理解好样式的作用域是很重要的。写过程序的同学应该都知道,变量是有作用域的(不知道的同学自己去问谷歌,这里就不作解释了),样式的定义也同样存在着作用域的问题,即定义的作 用范围,很容易就能理解,如下面的p的作用域:

 CODE:

/*作用域:全局*/ p{text-indent:2em;}

 

 CODE:

/*作用域:.demo这个类中*/ .demo p{color:#000000;}

    样式选择器的优先级是学习样式的基础知识,一起简单回顾下:

● 标签的权值为0,0,0,1

● 类的权值为0,0,1,0

● 属性选择的权值为0,0,1,1

● ID的权值为0,1,0,0

● important的权值为最高1,0,0,0

使用的规则也很简单,就是 选择器的权值加到一起,大的优先;如果权值相同,后定义的优先 。虽然很简单,但如果书写的时候没有注意,很容易就会导致CSS的重复定义,代码冗余。从上面我们可以得出两个关键的因素:

1权值的大小跟选择器的类型和数量有关

2样式的优先级跟样式的定义顺序有关

了解样式的权值后有什么作用呢?比如可以这样用:举一个最简单的例子

CODE:

body{color:#555555;}.demo{color:#000000;}

 

CODE:

<p>这里的文字颜色受全局定义的影响</p>

<div class="demo"><p>这里的文字颜色受类demo定义的影响</p></div>

<p class="demo">这里的文字颜色受类demo定义的影响