WEB前端--CSS样式优先级

article/2025/5/18 9:11:46

出处: http://xugang.cnblogs.com

样式的优先级

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

一般情况下,优先级如下:

(外部样式)External style sheet <(内部样式)Internal style sheet <(内联样式)Inline style

 

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

示例如下:

<head>
    <style type="text/css">
      /* 内部样式 */
      h3{color:green;}
    </style>
 
    <!-- 外部样式 style.css -->
    <link rel="stylesheet" type="text/css" href="style.css"/>
    <!-- 设置:h3{color:blue;} -->
</head>
<body>
    <h3>测试!</h3>
</body>

 

选择器的优先权

 

jc6_002

 

解释:

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

2.  ID 选择器的权值为 100

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

4.  HTML 标签选择器的权值为 1

 

利用选择器的权值进行计算比较,示例如下:

<html>
  <head>
    <style type="text/css">
        #redP p {
             /* 权值 = 100+1=101 */
             color:#F00;  /* 红色 */
        }
 
        #redP .red em {
             /* 权值 = 100+10+1=111 */
             color:#00F; /* 蓝色 */
 
        }
 
        #redP p span em {
             /* 权值 = 100+1+1+1=103 */
             color:#FF0;/*黄色*/
        }
    </style>
  </head>
  <body>
     <div id="redP">
        <p class="red">red
           <span><em>em red</em></span>
        </p>
        <p>red</p>
     </div>
  </body>
</html>

结果:<em> 标签内的数据显示为蓝色。

 

CSS 优先级法则:

A  选择器都有一个权值,权值越大越优先;

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

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

D  继承的CSS 样式不如后来指定的CSS 样式;

E  在同一组属性设置中标有!important”规则的优先级最大;示例如下:

<html>
  <head>
    <style type="text/css">
     #redP p{
        /*两个color属性在同一组*/
        color:#00f !important; /* 优先级最大 */
        color:#f00;
     }
    </style>
  </head>
  <body>
     <div id="redP">
       <p>color</p>
       <p>color</p>
     </div>
  </body>
</html>

结果:在Firefox 下显示为蓝色;在IE  6 下显示为红色

 

使用脚本添加样式

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

<html>
<head>
  <title> demo </title>
  <meta name="Author" content="xugang" />
 
  <!-- 添加外部CSS 样式 -->
  <link rel="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 中添加样式内容的JavaScript 代码:

var s=document.createElement("style");
var head=document.getElementsByTagName("head").item(0);
var link=document.getElementsByTagName("link").item(0);
 
head.insertBefore(s,link);
/* 注意:在IE 中,
   虽然代码是将<style>插入在<link>之前,
   但实际内存中,<style>却在<link>之后。
   这也是“IE中奇怪的应用CSS的BUG”之所在!
*/
 
var oStyleSheet = document.styleSheets[0];
//这实际是在<link>的外部样式中追加
oStyleSheet.addRule("h3","color:green;");
alert(oStyleSheet.rules[0].style.cssText);
alert(document.styleSheets[0].rules[0].style.cssText);
 
//方式2
var cssStr="h3 {color:green;}";
document.styleSheets.item(document.styleSheets.length-1).cssText=cssStr;

 

IE 浏览器下载或者渲染的顺序可能如下:

●   IE 下载的顺序是从上到下;

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

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

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

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

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

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

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



http://chatgpt.dhexx.cn/article/ya3jIgjQ.shtml

相关文章

CSS的样式与优先级

上节我们学习了三种CSS修饰html的三种方式&#xff1a;内部样式-外部样式-行内样式 那他们有没有优先级之分那&#xff1f;是有的&#xff0c;我们可以了解一下他们同时修改样式是怎么样的优先级 首先在书写的格式上我们的书写顺序排序是&#xff1a;行内-外部-内部 一般都要按…

【三】CSS之样式的优先级

【三】CSS之样式的优先级 1 css样式的优先级 css在使用过程中&#xff0c;因为很多的选择符有具有批量查找的特点&#xff0c;所以很容易出现样式污染的问题。样式污染出现的原因是因为css代码编写过程中&#xff0c;因为引入方式、书写先后顺序以及选择符的优先级等问题导致的…

【CSS】样式优先级

找了好多资料&#xff0c;真是什么样的答案都有&#xff0c;所以自己收集整理了一下。 优先级从高到低如下&#xff1a; &#xff01;important行内样式id选择器类选择器属性选择器伪类选择器标签选择器伪元素选择器 参考&#xff1a;CSS 样式优先级 | 菜鸟教程 (runoob.com)…

HTML样式表优先级最低的是,css的样式优先级

前几天做百度的笔试题&#xff0c;第一题就是关于css优先级的&#xff0c;虽然知道一些规则&#xff0c;但碰上把各条规则相互组合就懵逼了&#xff0c;所以还是得来好好总结一下的。 首要原则 就两条&#xff1a; 优先级高的样式覆盖优先级低的样式 同一优先级的样式&#xff…

#IT界大佬告诉你,程序员接私活的7大平台利器

今天小编在网上汇集了一些国内程序员接私活的平台&#xff0c;希望对大家能够有用。 1、程序员客栈&#xff1a;程序员的经纪人 2、快码众包-让互联网产品开发更快速&#xff01;认准域名Kuai.ma 3、Coding 码市 - 基于云技术的软件外包服务平台 coding码市 4、开源中国众包平…

2020年 9 大程序员接私活的网站

点击“开发者技术前线”&#xff0c;选择“星标????” 在看|星标|留言, 真爱 2019互联网圈不好混&#xff0c;不是每个公司都能像腾讯云每人一部iPhone 11&#xff0c;不少公司今年已经没了年终奖&#xff0c;不要抱怨&#xff0c;因为有的小伙伴估计工作都没了。师长今天…

好起来了!程序员副业接私活网站分享~

来源&#xff1a;网络 1、程序员客栈&#xff1a;程序员的经纪人2、快码众包-让互联网产品开发更快速3、开源中国众包平台 oschina众包4、Coding 码市 - 云技术众包平台5、我爱方案网-电子方案开发&#xff0c;供应链平台6、码易-高质量软件众包交付服务平台7、人人开发 -让管理…

程序员可接私活的10个平台和一些建议,别掉坑里!

点击上方“码农突围”&#xff0c;马上关注&#xff0c;每天上午8:50准时推送 这里是码农充电第一站&#xff0c;回复“666”&#xff0c;获取一份专属大礼包 真爱&#xff0c;请设置“星标”或点个“在看” 作者&#xff1a;程序员新视界 来源&#xff1a;http://suo.im/4tacf…

程序员接私活的6个网站,你有技术就有钱!

点击上方“Python高校”&#xff0c;关注 未未干货立马到手 作者&#xff1a;发哥 链接&#xff1a;GitHubDaily 本篇文章会向大家推荐国内外几个接外包比较靠谱的平台&#xff0c;主旨是贵精不贵多。因此&#xff0c;像「猪x戒」这种会让程序员自贬身价&#xff0c;扰乱市场规…

程序员养家活口接私活必备网站(顺便用技术改变世界)

程序员接私活的原因很多种(挣钱、养家糊口、提升技术等等)。下面整理了一下网站送给最有潜能的你。 提前准备好自己的笔记本和技术呦。 1.码客帮:https://www.make8.com/ 码客帮是一个基于众包的互联网软件技术服务平台,建立项目需求方与技术大牛的连接。帮助需求方快速找到靠…

2020年,给你7个程序员接私活必备网站!

2020互联网圈不好混&#xff0c;不是每个公司都能像蚂蚁金服一样这么大气&#xff0c;不少公司今年因为疫情已经开始裁员&#xff0c;不要抱怨&#xff0c;加油干就完事了&#xff01; 今天给大家推荐几个赚钱养家的好渠道&#xff0c;一起来看看吧&#xff01; 1、程序员客栈…

分享10个接私活的网站

1. 程序员客栈&#xff1a;程序员的经纪人 https://www.proginn.com/ 2. 开源中国众包平台 oschina 众包 https://zb.oschina.net/ 3. 码市&#xff1a;来码市&#xff0c;找人才/任务快人一步 https://codemart.com/ 4. 我爱方案网&#xff1a;电子方案开发&#xff0c;供应…

程序员多赚20k的接私活必备网站

为什么都是程序员&#xff0c;就有人能多赚20k&#xff1f;那是因为副业搞得那么溜啊&#xff01; 今天分享一些程序员搞钱必备的接私活网站&#xff0c;让更多程序员们在工作之余能有另外一份收入。 1.程序员客栈&#xff1a;http://proginn.com 专为程序员服务的软件外包对…

程序员国内外最受好评的接私活6大网站,有技术就不怕赚不到钱!

本篇文章会向大家推荐国内外几个接外包比较靠谱的平台&#xff0c;主旨是贵精不贵多。因此&#xff0c;像「猪x戒」这种会让程序员自贬身价&#xff0c;扰乱市场规则的网站&#xff0c;便不会出现在下方推荐列表中。 下面开始进入正题。 国外篇 如果你打算接国外的软件外包&…

166、锐捷交换机如何配置?一步步详解,交换机配置再也不难了

本期内容共分为两部分,第一部分是vlan的基础配置命令,第二部分是锐捷交换机的配置实例,我们一起来看下,如何一步步的连接及配置锐捷交换机。 一、连接及远程登陆 用一台计算机作为控制台和网络设备相连,通过计算机对网络设备进行配置。 1、硬件连接: 把Console线一端连…

精心整理!锐捷交换机配置信息查看十大命令,会用不迷路

关于锐捷交换机的使用&#xff0c;一直都有不少朋友问起&#xff0c;本期阿城就给大家整理下常用的10大锐捷交换机的配置查看命令&#xff0c;希望可以帮助到各位老铁&#xff0c;记得点赞在看呀。 1、Ruijie#show version 这个命令可以查看交换机具体型号、软件版本、硬件版本…

锐捷交换机配置保存到计算机,锐捷交换机常用配置命令汇总

前面我们给大家汇总了华为、华三交换机的配置命令,都是非常适合小项目的,当然碰到大型的网络工程,还是需要厂家的专业人才来做。今天再给大家分享一下锐捷交换机的配置命令,这样国内三大家就全部都有了,学习一些基础网络知识还是不错的,尤其在视频监控系统中应用一下,还…

锐捷交换机配置snmp和syslog

创建vlan 110 配置 IP地址 配置交换机的共同体&#xff08;Community&#xff09;为“ruijie”&#xff0c;通常只读口令和读写口令单独配置&#xff0c;提升安全性 snmp-server community ruijie rw snmp-server community huawei ro 配置交换机主动向网管工作站&#xff…

锐捷交换机SNMP配置

一、组网需求 1、交换机允许IP&#xff08;192.168.1.2/24&#xff09;的网管工作站对网络设备&#xff08;192.168.1.1&#xff09;进行管理。共同体为“ruijie”或者“public” 2、网络设备能够主动向网管工作站发送SNMP TRAP消息 二、组网拓扑 三、配置要点 1、设置共同…

锐捷交换机配置学习

通过终端的IP地址找到终端所在交换机上的端口号 IP地址——MAC地址——端口 1.查看ARP缓存&#xff1a;输入你要查找的IP地址的部分或全部内容。如果找的IP地址包含31.87&#xff0c;输入如下命令&#xff1a;show arp | include 31.87&#xff0c;可获得结果。并可知道对应的…