• 泽州去年“免费教育”资金达5211万元 2019-10-15
  • 安徽秸秆综合利用产业博览会淮南签约10个项目 2019-10-14
  • “拖稿”也自信 美女作家落落来渝聊新书 2019-09-29
  • 政能亮政府服务,当好“店小二”而非“二大爷” 2019-09-22
  • 绝崖山谷藏神秘古寺 简单就是世界奇观 2019-09-19
  • 交通部:7月1日起禁止不合规车辆运输车通行 2019-09-13
  • 聚焦机构改革:新部门接连挂牌 快速进入角色 2019-09-13
  • 国家级·西安经济技术开发区————西部网 陕西头条 2019-09-10
  • 【今日之星】李宝:立志做大国工匠 2019-09-08
  • 运输物流领域将推失信联合惩戒 失信主体不得报考公务员 2019-09-08
  • 只看到“贫穷”而看不到“富裕”,只看到贫富差别而看不到其根源是社会财富被个人占为私有的私有制,都是片面错误的。 2019-09-07
  • 在强国论坛和新浪微博上也就说了几句国产80后伟大的钢琴家,嚯!粉丝不干了,邮箱里塞满男性女性生殖器的骂声和愤慨声。其实,真没有诋毁的意思。比如,美国一家男性内衣 2019-09-07
  • 《国家人文历史》文章精选 2019-09-04
  • 全民总动员 国家才安全-光明时评 2019-08-31
  • 新时代·幸福美丽新边疆:镜像海南 2019-08-31
  • 曾夫人免费特码资料: JSON在线解析

    CSS选择器优先级

    浏览器是通过判断CSS优先级,来决定到底哪些属性值是与元素最为相关的,从而作用到该元素上。CSS选择器的合理组成规则决定了优先级,我们也常常用选择器优先级来合理控制元素达到我们理想的显示状态,下面我们来具体了解下CSS选择器优先级及权重。

    CSS选择器如何计算?

    1. 当CSS选择器权重相同,则最后的声明的CSS选择器覆盖靠前的 CSS。

    2. CSS优先级是根据由每种选择器类型构成的级联字串计算而成的,它不是一个对应相应匹配表达式的权重值。

    3. 相同CSS表达式,在DOM结构中的距离是不会对元素优先级计算产生影响的。

    CSS优先级顺序

    下列是一份优先级逐级增加的选择器列表:

    1. 通用选择器

    2. 元素(类型)选择器

    3. 类选择器

    4. 属性选择器

    5. 伪类

    6. ID 选择器

    7. 内联样式


    多重样式(Multiple Styles

    如果外部样式、内部样式和内联样式同时应用于同一个元素,就是使多重样式的情况。

    一般情况下,优先级为:(外部样式)External style sheet <(内部样式)Internal style sheet <(内联样式)Inline style

    有个例外的情况,就是如果外部样式放在内部样式后面,则外部样式将覆盖内部样式。

    示例如下:

    <head>
       <style type="text/css">
         
         h3{color:green;}
       </style>
     
       <!-- 外部样式 style.css -->
       <linkrel="stylesheet"type="text/css"href="style.css"/>
       <!-- 设置:h3{color:blue} -->
    </head>
    <body>
        <h3>welcome www.zvyeo.tw</h3>
    </body>

    结果:点击我看上面的结果


    选择器的优先权

    选择器优先权

    选择器的优先权解释说明

    1. 内联样式表的权值最高 1000。

    2. ID 选择器的权值为 100。

    3. Class 类选择器的权值为 10。

    4. HTML 标签(类型)选择器的权值为 1。

    选择器的权值进行计算比较,结果如下:

    <html>
      <head>
       <style type="text/css">
          #redP p {
              
              color:#F00;  
          }
     
          #redP .red em {
              
              color:#00F; 
     
          }
     
          #redP p span em {
              
              color:#FF0;
          }
       </style>
      </head>
      <body>
         <divid="redP">
            <pclass="red">red
              <span><em>em red</em></span>
           </p>
            <p>red</p>
         </div>
      </body>
    </html>

    结果:<em> 标签内的数据显示为蓝色:点击我看上面的结果


    CSS 优先级规则:

    1. 选择器都有一个权值,权值越大越优先。

    2. 当权值相等时,后出现的样式表设置要优于先出现的样式表设置。

    3. 创作者的规则高于浏览者:即网页编写者设置的CSS 样式的优先权高于浏览器所设置的样式。

    4. 继承的CSS 样式不如后来指定的CSS 样式

    5. 在同一组属性设置中标有“!important”规则的优先级最大。

    CSS !important 规则实例:
    <html>
     <head>
       <style type="text/css">
        #redP p{
           
           color:#00f !important; 
           color:#f00;
        }
       </style>
     </head>
     <body>
        <divid="redP">
          <p>color</p>
          <p>color</p>
        </div>
     </body>
    </html>

    结果:在Firefox 下显示为蓝色;在IE6 下显示为红色点击我看上面的结果


    使用脚本添加样式:

    当在连接外部样式后,再在其后面使用JavaScript脚本插入内部样式时(即内部样式使用脚本创建),IE 浏览器就表现出它的另类了。代码如下:

    <html>
    <head>
      <title> demo </title>
      <metaname="Author"content="xugang" />
     
      <!-- 添加外部CSS 样式 -->
      <linkrel="stylesheet"href="styles.css"type="text/css" />
      <!-- 在外部的styles.css文件中,代码如下:
           h3 {color:blue}
      -->
     
      <!-- 使用javascript 创建内部CSS 样式 -->
      <script type="text/javascript">
      <!--
       (function(){
          var agent = window.navigator.userAgent.toLowerCase();
          var is_op = (agent.indexOf("opera") != -1);
          var is_ie = (agent.indexOf("msie") != -1) && document.all && !is_op;
          var is_ch = (agent.indexOf("chrome") != -1);
     
          var cssStr="h3 {color:green;}";
          var s=document.createElement("style");
          var head=document.getElementsByTagName("head").item(0);
          var link=document.getElementsByTagName("link");
          link=link.item(0);
     
          if(is_ie)
          {
             if(link)
                head.insertBefore(s,link);
             else
                head.appendChild(s);
             document.styleSheets.item(document.styleSheets.length-1).cssText=cssStr;
          }
          else if(is_ch)
          {
             var t=document.createTextNode();
             t.nodeValue=cssStr;
             s.appendChild(t);
             head.insertBefore(s,link);
          }
          else
          {
             s.innerHTML=cssStr;
             head.insertBefore(s,link);
          }
       })();
      //-->
      </script>
    </head>
    <body>
      <h3>在IE中我是绿色,非IE浏览器下我是蓝色!</h3>
    </body>
    </html>

    结果:在Firefox / Chrome / Safari / Opera 中,文字都是蓝色的。而在IE 浏览器中,文字却是绿色的。 :点击我看上面的结果

    IE 浏览器下CSS渲染的顺序可能如下

    1. IE 下载的顺序是从上到下;

    2. JavaScript 函数的执行会阻塞IE 的下载;

    3. IE 渲染的顺序也是从上到下;

    4. IE 的下载和渲染是同时进行的;

    5. 在渲染到页面的某一部分时,其上面的所有部分都已经下载完成(但并不是说所有相关联的元素都已经下载完。)

    6. 在下载过程中,如果遇到某一标签是嵌入文件,并且文件是具有语义解释性的(例如:JS脚本,CSS样式),那么此时IE的下载过程会启用单独连接进行下载。并且在下载后进行解析,如果JS、CSS中如有重定义,后面定义的函数将覆盖前面定义的函数。

    7. 解析过程中,停止页面所有往下元素的下载。样式表文件比较特殊,在其下载完成后,将和以前下载的所有样式表一起进行解析,解析完成后,将对此前所有元素(含以前已经渲染的)重新进行样式渲染。并以此方式一直渲染下去,直到整个页面渲染完成。

    8. Firefox 处理下载和渲染的顺序大体相同,只是在细微之处有些差别,例如:iframe 的渲染。

    声明

    当前资源,是在网络资源中优化,以及整理和排版,部分真实性已经校验,因为涉及到浏览器的版本一直在升级,故请同学点击测试结果对应查看结果并参考。

    工具导航地图

  • 泽州去年“免费教育”资金达5211万元 2019-10-15
  • 安徽秸秆综合利用产业博览会淮南签约10个项目 2019-10-14
  • “拖稿”也自信 美女作家落落来渝聊新书 2019-09-29
  • 政能亮政府服务,当好“店小二”而非“二大爷” 2019-09-22
  • 绝崖山谷藏神秘古寺 简单就是世界奇观 2019-09-19
  • 交通部:7月1日起禁止不合规车辆运输车通行 2019-09-13
  • 聚焦机构改革:新部门接连挂牌 快速进入角色 2019-09-13
  • 国家级·西安经济技术开发区————西部网 陕西头条 2019-09-10
  • 【今日之星】李宝:立志做大国工匠 2019-09-08
  • 运输物流领域将推失信联合惩戒 失信主体不得报考公务员 2019-09-08
  • 只看到“贫穷”而看不到“富裕”,只看到贫富差别而看不到其根源是社会财富被个人占为私有的私有制,都是片面错误的。 2019-09-07
  • 在强国论坛和新浪微博上也就说了几句国产80后伟大的钢琴家,嚯!粉丝不干了,邮箱里塞满男性女性生殖器的骂声和愤慨声。其实,真没有诋毁的意思。比如,美国一家男性内衣 2019-09-07
  • 《国家人文历史》文章精选 2019-09-04
  • 全民总动员 国家才安全-光明时评 2019-08-31
  • 新时代·幸福美丽新边疆:镜像海南 2019-08-31
  • 宝宝计划安卓下载安 南粤风采今晚开什么 彩票自动发计划软件下载 有什么稳赚不赔的小生意养老 百人牛牛游戏软件 彩票两面盘大小怎么看 稳赢时时彩计划软件下载 重庆时时全天计划 盈利计划 欢乐二人雀神有挂吗