css优先级

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8" />
 5         <title></title>
 6         <style>
 7             a{color: #333;}
 8             #div a{color: red;}
 9             h1 a{color: green;}
10             .h a{color: blue;}
11         </style>
12     </head>
13     <body>
14         <div id="div">
15             <h1 class="h">
16                 <a href="http://baidu.com">baidu</a>
17             </h1>
18         </div>
19     </body>
20 </html>

最后上面的a标签会显示为什么样色?此题考查了css样式的优先级。

--------------------------------------------分割线-------------------------------------------

下面为干货:

1.相同权值情况下,CSS样式的优先级总结来说,就是——就近原则(离被设置元素越近优先级别越高)

内联样式表(标签内部)> 嵌入样式表(当前文件中)> 外部样式表(外部文件中)。

2.权值不同时,浏览器是根据权值来判断使用哪种css样式的,哪种样式权值高就使用哪种样式。

权值规则:标签的权值为1,类选择符的权值为10,ID选择符的权值最高为100。

举例来理解:

 1 p{color:red;} /*标签,权值为1*/
 2 
 3 p span{color:green;} /*两个标签,权值为1+1=2*/
 4 
 5 p>span{color:purple;}/*权值与上面的相同,因此采取就近原则,这个比上面的权值高*/
 6 
 7 .warning{color:white;} /*类选择符,权值为10*/
 8 
 9 p span.warning{color:purple;} /*权值为1+1+10=12*/
10 
11 #footer .note p{color:yellow;} /*权值为100+10+1=111*/

注意:(1)还有一个权值比较特殊——继承也有权值但很低,有的文献提出它只有0.1,所以可以理解为继承的权值最低。(继承是一种规则,它允许样式不仅应用于某个特定html标签元素,而且应用于其后代。如<p>便签内部的<span>标签就会继承该<p>标签的样式);

(2)做网页代码的时,有些特殊的情况需要为某些样式设置具有最高权值,可以使用!important来解决。

--------------------------------------------分割线-------------------------------------------

了解具体知识之后,再来看文章开头的题目。

a{color: #333;}/*标签,权值为1*/
#div a{color: red;}/*权值:100+1*/
h1 a{color: green;} /*权值:1+1*/
.h a{color: blue;}/*权值10+1*/

根据权值,a标签的颜色为红色。

-------------------------------------吃一堑长一智--------------------------------------

之前没有仔细的理解和记忆这些知识,吃过亏才知道重要性。继续努力吧!

posted @ 2017-06-02 14:21  心悦诚服555  阅读(162)  评论(0编辑  收藏  举报