css优先级

 

1. css样式计算

   (1)默认情况下,浏览器给元素有一个默认的样式。

   (2)如果元素继承了父元素的样式,则继承的样式覆盖浏览器默认的样式。

   (3)如果给元素指定了样式,则会覆盖继承的样式和浏览器默认的样式。可能有多个位置给一个元素的指定了样式,则需要根据优先级来确定元素使用哪个样式。

 

2. 给元素指定样式

       根据指定的样式的位置,可分为外部样式、内部样式和内联样式。外部样式是从外部引用的样式、内部样式是在html中style标签内写的样式,内联样式是通过属性style=''设置的样式。

  

   <head>

    <style type="text/css">

      <!--内部样式-->

      p{font-size:20px}

    </style>

    <!--外部样式-->

    <link rel="stylesheet" type="text/css" href="style.css"/>

 </head>

 <body>
   <p style="font-size:12px">段落文字</p><!--内联样式-->
</body>

  

   指定样式的优先级

 (1)important优先级最高。

   (2)若没有important,计算权值,权值大的优先级越高。 

       根据选择器不同,有五类权值:

         a. 内联样式:1000

             b. ID选择器:100

         c. 类选择器、属性选择器和伪类选择器:10

         d. 元素和伪元素选择器:1

         e. 结合符和通配符:0

     一次定义选择器的优先权等于各类选择器权值相加。

    如:

      #main{

      color: red;/*权值为100*/
    }

    div #main{

      color:green;/*权值为 1 + 100 = 101*/
    }

    *[id="main"]{

      color: blue;/*权值为0 + 10 = 10*/
    }
    
    /*#main的字体颜色为绿色。div #main的权值最大。*/
     
   

     (3)若权值相等,根据声明的样式的先后顺序。无论是外部样式,还是内部样式,在后面声明的覆盖先前的。

style.css

#main p{
    color :red;
}
<head>
    <style type="text/css">
        # main p{color:blue;}
    </style>
    <link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
    <div id="main">
        <p>段落文字</p>
    </div>
</body>

<!--p的字体颜色为红色。-->
<head>
    <link rel="stylesheet" type="text/css" href="style.css" />
    <style type="text/css">
        # main p{color:blue;}
    </style>
</head>
<body>
    <div id="main">
        <p>段落文字</p>
    </div>
</body>

<!--p的字体颜色为蓝色。-->
posted @ 2016-04-13 15:55  springmin  阅读(236)  评论(0编辑  收藏  举报