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

article/2025/5/18 13:58:14

前几天做百度的笔试题,第一题就是关于css优先级的,虽然知道一些规则,但碰上把各条规则相互组合就懵逼了,所以还是得来好好总结一下的。

首要原则

就两条:

优先级高的样式覆盖优先级低的样式

同一优先级的样式,后定义的覆盖先定义的,即后来居上

而至于样式的优先级如何确定,就是接下来要讨论的问题:

多重样式间的优先级

w3school给出的优先级顺序从低到高是:

浏览器缺省设置

外部样式表

内部样式表(位于

标签内部)

内联样式(在 HTML 元素内部)

但其实外部样式表若放在内部样式表后面其实是会覆盖内部样式表的,举个例子:

多重样式优先级

#box {

width: 100px;

height: 100px;

background-color: #000;

}

@import url(higher.css);

---highter.css

#box {

height: 200px;

}

---wider.css

#box {

width: 200px;

}

最终得到的是一个宽高都为200px的红色元素,很明显,内部样式被放在后面的外部样式覆盖了。所以我更倾向于认为外部样式表和内部样式表具有相同的优先级,结论如下:

浏览器缺省设置 < 外部样式表 = 内部样式表 < 内联样式

同一样式表内部的优先级

同一样式表内,样式的优先级主要是由选择器的权重和权重的累加决定的。

首先,参考这篇文章可知选择器的权重排序为:

1.通用选择器* 0-0-0

2.标签选择器,伪元素 0-0-1

3.类选择器,属性选择器,伪类 0-1-0

4.ID 选择器 1-0-0

而对于组合上面几种情况的选择器式而言,就需要将所有出现的权重进行相加,取相加后的结果作为权重,注意相加时:

不进位。因为每位权重间相差的数量级是很大的,在正常使用时不会出现低级选择器靠数量的累加提升为高级权重(虽然在某些情况下确实会发生,比如256个class选择器可以干掉1个id选择器。。。)

无视+,>,~等组合选择器的符号

not伪类不作为伪类计算权重,而是直接计算其参数的权重。比如下面的代码中not伪类的权重要高于类选择器:

not伪类的优先级

div:not(#box) {

width: 100px;

height: 100px;

background-color: #0f0;

}

div.box {

width: 100px;

height: 100px;

background-color: #f00;

}

除了选择器,样式自身还可以继承和提升优先级,规则如下:

从祖先元素继承来的样式优先级低于通用选择器;甚至低于浏览器的缺省设置,比如最常见的,重置链接的默认样式时必须写在链接元素上,放在祖先元素中是没有卵用滴

使用大杀器!important可将样式提升到最高等级,不管这个样式在哪个样式表或选择器中;如果在同一样式中出现了多个!important,就得看上面的权重规则进行pk了

是不是看起来有点晕,附上参考文章里的大鱼吃小鱼的图来辅助理解吧:

bVvadx

最终结论

结合上面的讨论,我们可以得出元素的最终样式是由什么决定的:

多重样式间遵循:继承来的样式 < 浏览器缺省设置 < 外部样式表 = 内部样式表 < 内联样式

而在同一样式表中存在:通用选择器* 0-0-0 < 标签选择器,伪元素 0-0-1 < 类选择器,属性选择器,伪类 0-1-0 < ID 选择器 1-0-0 << !important,其中对于组合选择器还要用上面提到的方法进行权重累加后才能判断

首要原则:高优先级覆盖低优先级,同一优先级则后来居上

最后,要知道了解样式的优先级,最重要的不是为了用来酷炫和装逼,而是能让我们写出更简洁高效的代码,保证在写代码时就知道一定会出来什么样式,而不是等到堆上一堆选择器后样式还出不来时,再一脸懵逼地去排查。


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

相关文章

#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;可获得结果。并可知道对应的…

锐捷交换机配置SSH

锐捷交换机配置ssh 一、组网需求 通过ssh功能可以远程登录管理设备 二、配置步骤 全局开启ssh服务&#xff0c;并且指定ssh版本 Ruijie>enable Ruijie#configure terminalRuijie(config)#enable service ssh-server ------>开启SSH服务&#xff0c;默认关闭Ruijie(c…

锐捷网络交换机配置命令大全

【欢迎关注微信公众号&#xff1a;厦门微思网络】 关注我&#xff0c;你的眼睛会怀孕 基本配置 >Enable 进入特权模式 #Exit 返回上一级操作模式 #End 返回到特权模式 #write memory 或copy running-config startup-config 保存配置文件 #del flash:config.text…

97、锐捷交换机常用配置命令汇总

一、连接及远程登录 用一台计算机作为控制台和网络设备相连接,通过计算机对网络设备进行配置。 1、硬件连接 把Console线一端连接在计算机的串口上,另一端连接在网络设备的Console口上。 按照上面的线序制作一根双绞线,一端通过一个转换头连接在计算机的串口上,另一端连接…

锐捷交换机基础配置命令

ip地址&#xff1a;ip地址就像你的名字&#xff0c;在你所在的地方管用。 mac地址&#xff1a;就像你的身份证&#xff0c;在所有的地方都管用。 enable----进入特权模式config----进入全局配置模式 hostname ruijie2021----更改设备名称vlan 10 ----创建vlan 10&#xff08;…