zoukankan      html  css  js  c++  java
  • css(外部样式表)中各种选择器(定义属性时)的优先级

    今天在学css的时候遇到一个问题,用css的外部样式表改变一个<p>元素的颜色,死活就是改变不了,最后才发现是优先级的问题(我自己想当然成后面的优先级就高了,犯了经验主义错误)。

    先给大家看看代码:html

     1 <!DOCTYPE html>
     2 <html>
     3 <head>
     4 <meta charset="utf-8">
     5 <title>这是第二个测试网页</title>
     6 <link rel="stylesheet" type="text/css" href="./css/demo.css">
     7 </head>
     8 
     9 <body>
    10 <!--这个网页共分成三个比较大的块-->
    11     <!--这是第一个块-->
    12     <div id="d1">
    13         <p id="p1">id为p1的文字</p>
    14         <p id="p2">id为p2的文字</p>
    15         <p id='p3'>id为p3的文字</p>
    16     </div>
    17     <!--这是第二个块-->
    18     <div id="d2">
    19         <p class="c1">class为c1的文字</p>
    20         <p class="c2">class为c2的文字</p>
    21         <p id="pc3" class='c3'>class为c3的文字</p>
    22     </div>
    23     <!--这是第三个块-->
    24     <div>
    25     </div>
    26 </body>
    27 </html>

    css代码:

     1 #d1
     2 {
     3     background:blue;
     4 }
     5 #d2
     6 {
     7     background:yellow; 9     color:white;
    10 }
    11 .c3
    12 {
    13     color:red;
    14 }
    15 p
    16 {
    17     color:green;
    18     text-align:center;
    19 }

    这两个文件里面的代码应该来讲,结构是非常清晰的。那么重点来看css的代码。

    #d1和#d2是id选择器,它们分别想让第一个div中的背景为蓝色,第二个div中的背景为黄色,且字体为白色;

    .c3控制的是第二个div中第三行的p元素,想让其成为红色;

    p控制但是全文中的段落文字的显示样式,这里想让他们居中,且文字颜色为绿色。

    那么大家猜猜,网页显示的结果是咋样的呢?

    我在网上搜到一个帖子,里面讲的井井有条:

    w3schools说css的顺序是“元素上的style” > “文件头上的style元素” >“外部样式文件”;

    对于同在一个样式文件中的属性控制:

    1.样式表的元素选择器选择越精确,则其中的样式优先级越高:id选择器指定的样式 > 类选择器指定的样式 > 元素类型选择器指定的样式;

    2.对于相同类型选择器指定的样式,在样式表文件中,越靠后的优先级越高:注意,这里是样式表文件中越靠后的优先级越高,而不是在元素class出现的顺序。

    最后放上我的代码的执行结果,供大家参考:

  • 相关阅读:
    ie下如果已经有缓存,load方法的效果就无法执行.的解决方法
    css公共样式
    pageX、pageY全兼容
    js滚动加载插件
    getComputedStyle()与currentStyle
    excel15个技巧
    XMLHttpRequest函数
    继承模式
    cookie函数
    jQuery添加删除元素
  • 原文地址:https://www.cnblogs.com/wsg25/p/7643283.html
Copyright © 2011-2022 走看看