在写css样式的时候我们要注意的有顺序问题,更重要的时候style,class与id之间的优先级问题,在页面初次完工未经改变,或者页面复杂程度很小的时候,搞不清楚这三者之间的优先级问题,似乎并没有什么大的问题,但是一旦随着页面的更改完善,以及页面元素的错综复杂度增加,问题就显而易见了。
先来说说顺序的问题吧,比如说我们在整体的样式前面定义了一些连接的颜色之类的a{color:#F00}属性,但是在后面的样式规则中,我们不需要连接的颜色都是红色的,所以就需要重新定义他的颜色,但又不能完全重新定义,这就需要用到继承属性规则了,(本文的重点是说样式属性的优先级问题,至于继承的规则就不在多说了)上面所说的就是一个顺序的问题,页面总是会按照定义给他的最后的一个规则来显示。
然后再说说优先级的问题,上代码吧,问题太多看的眼疼:
css
-
*{ color:red;}
-
body{ color:green;}
-
#id{ color:blue;}
-
.class{ color:yellow;}
HTML效果截图
从①和②可以看出样式的定义顺序起了作用,我们把body{color:green}去掉的话,二者将同时显示红色,之所以①显示绿色,是因为body{}在*后面对body所包含的的标签内部进行了重新定义。
第③④⑤条规则的显示结果可以看出,在三中样式规则同时存在的时候优先级最高的是style所定义个属性值,与style,id,class的书写顺序没有关系。
第⑥和第⑦我想大家都明白是怎么一个结果了吧,就是说id与class的优先级为id优先于class,与顺序也没有关系。
综上所述,我们可以知道,id,class,style的优先级别顺序为style高于id高于class,与顺序没有关系的。
转载自http://www.zctya.com/cssstyle/42.html