代码改变世界

CSS的一个小技巧

2008-11-19 16:14  snryang  阅读(564)  评论(0编辑  收藏  举报

    今天给gridView增加鼠标移入移出改变背景色效果,和单击行改变背景色效果时,老是没有效果,后来经过测试和查找资料发现是css优先级的问题. 希望对大家有所帮助. 

 

1,2 很好理解,不用多说。

3,4  显示的都是蓝色,说明与class = "c1 c2" 或 "c2 c1" 无关。

5,6  我将样式定义的顺序换了一下,先定义蓝色,后定义红色 ,说明显示的是最后定义的颜色。

错误就犯在定义样式的顺序上

你们可以试着将下面 !important 关键字去掉,或者将样式的顺序改变试试。

Code

 

 

CSS样式使用优先级判断

1。多个选择器可能会选择同一个元素,有3个规则,从上到下重要性降低:

      !important的用户样式

      !important的作者样式

      作者样式

      用户样式

      浏览器定义的样式

2。CSS样式的特殊性权重——谁有分量,谁说了算。

CSS规范为不同类型的选择器定义了特殊性权重,特殊性权重越高,样式会被优先应用。

权重设定如下:

html选择器,权重为1;

类选择器,权重为10;

id选择器,权重为100;

这里还有一种情况:在html标签中直接使用style属性,这里的style属性的权重为1000;

即如下情况:

#x34y {color:red}

<.  p id=x34y style="color:green">  优先选择style=""设定的样式。

其他类型的,大家看看例子就明白了。

例子:

h1{color:blue}  权重为1

p  em{color:yellow}  权重为2

.warning{color:red}  权重为10

p.note em.dark{color:grag}  权重为22

#main{color:black}  权重为100     这里还有一种情况:

权重一样时如何处理?权重一样时就另说了。看看下面的就明白了。

3。CSS样式的层叠原则——谁离我近,谁说了算。

当权重一样时,会采用“层叠原则” 后定义的会被应用。

如:p{color:yellow}

        p{color:red}

作用到这里   <. p >我的什么颜色呢?< /p>

结果会是red的。

4。CSS样式的特殊标记——谁有特权,谁说了算。

如果有人看不顺眼,非得要自己说了算,那可以搞点特权,如下即可

p {color:blue !important;}

加上!important;可将自己权重设为最高。