CSS 规则的优先级

CSS规则应用与优先级解析 本文深入探讨了CSS规则在HTML页面中的应用方法,包括直接在HTML元素中添加样式、使用头部样式(<style>标签)以及链接外部CSS文件。特别强调了外部CSS文件在网站维护和设计中的优势,并通过示例展示了不同方式声明CSS规则时的优先级排序。 阅读详情

CSS 规则的优先级是Web前端开发人员必须理解的一个概念,我们常用的添加样式的方法有4种。

inline style

embeded style

external style

user style

inline style是丑陋的,它们穿梭在HTML文档中,与HTML元素扭成一团,给Web前端开发人员造成了许多麻烦。它们往往以这样的面目出现:

<p style="color:red;">This is a paragraph.< /p>

embeded style比inline style绅士一些,它们也寄宿在HTML文档中,但是它们不屑于与HTML元素扭成一团。它们往往在 < style> 元素中出现:

<style type="text/css" media="screen"> 
p{ color: red; } 
< /style>

external style是个贵族,它不愿意同HTML呆在一起,所以干脆以外部文件的形式独立存在。通常我们使用 < link> 元素或者@import语句将它们导入HTML。

<link rel="stylesheet" type="text/css" href="style.css" media="screen" />
 
我们应当尽可能使用external style,我想理由有很多,大家都知道,我也就不重复了。

还 有一种user style与以上三者略有不同,如果你使用IE浏览器,那么你可以在Tools – Internet Options – General – Appearance – Accessibility – User style sheet 下找到添加user style的地方(原谅我没有中文版的IE浏览器)。

既然我们有如此多的添加style的方法,那么难以避免样式会产生层叠。如:

<p class="intro" style="color:red;">This is a paragraph.< /p>

我们在使用以上inline style的同时,又在我们的external style中使用了:

p{ color: yellow; }

我们甚至还在拥有 class="intro" 的 < p> 元素上应用了:

p.intro{ color: blue; }

这样我们就 在同一元素的同一属性 color 上,拥有多条CSS规则指定了值 。这种情况被称为层叠(Cascading)。当层叠发生时,CSS Parser将根据优先级算法来确定最终选用的值。

优先级算法按照先后顺序考虑以下三个方面:

CSS规则的重要性和来源

CSS规则的特殊性

CSS规则在文档中出现的顺序

算法过程分为4步:

1、针对某一元素的某一属性,列出所有给该属性指定值的CSS规则。如上例中,在 class="intro" 的 < p> 元素上,有三条CSS规则指定了 color 属性。

2、根据声明的重要性和来源进行优先级排序

重要性有两种:

important

normal(即非important)

在CSS规则后添加 !important 的重要性要高于没有添加的。

来源有三种:

user agent stylesheet – 浏览器默认样式

author stylesheet – 开发人员定义的样式

user stylesheet – 用户在浏览器中定义样式

重要性和来源的优先级排序从低到高是:
 
user agent stylesheet

user style sheets中的normal规则

author style sheets中的important规则

user style sheets中的important规则

经过以上排序,如果有一条CSS规则的优先级高于其他所有竞争规则,那么算法结束,返回该最高优先级指定的值。如果有多条CSS规则具有最高优先级,那么它们将要继续竞争下去,算法将进入第3步。

3、按照特殊性(Specificity)排序

CSS将计算多条规则中指定每一规则的selector的特殊性值,该值越高,优先级越高。

特殊性值是一个由4个整数组成的一个类似数组的值:a,b,c,d,其中a的权重最高,依次类推,d的权重最低。selector特殊性值的计算方法是:

如果该规则是一条inline style,那么a = 1

如果该规则由selector指定,selector中出现的id selector的数量就是b的值

e.g. 
#AA{ 
color:blue; 
}

优先级高于

.test{ 
color:red; 
}

如果该规则由selector指定,selector中出现的属性selector(包括class selector)或者伪类selector的数量总和就是c的值!

如果该规则由selector指定,selector中出现的元素selector或者是伪元素selector的数量总和就是d的值。 

universal selector * 的特殊性值为0,0,0,0

官方网站 提供了一些例子可以加深理解。

在根据特殊性值排序时,由于a的权重最高,因此首先比较a,在a相同的情况,在比较b,依次类推。因此不论b,c,d值有多大,inline style总是具有最高的特殊性。

如果根据以上特殊性排序后,有一条CSS规则的优先级高于其他所有竞争规则,那么算法结束,返回该最高优先级指定的值。如果有多条CSS规则具有最高优先级,那么它们将要继续竞争下去,算法将进入第4步。

4、比较CSS规则在文档中出现的顺序

出现在后的总是比出现在前的具有更高的优先级,因此出现在最后的那条语句将被作为该属性的值

CSS规则层叠时的优先级算法 CSS 规则的优先级是Web前端开发人员必须理解的一个概念,我们常用的添加样式的方法有4种。 立即下载

相关推荐

JDK8升级JDK17过程中遇到的那些坑

JDK8虽然非常好,但是JDK版本已经发布到JDK20了,且JDK8后的版本升级了很多新的特性,如模块化、ZGC以及虚拟线程、结构性并发等,也是非常有吸引力的,所以决定将基于JDK8的项目升级到最近的LTS版本JDK17。

BASK2312的博客 6685

Css层叠优先级只会这两招还远远不够

层叠上下文。是HTML中的一个三维概念,如果一个元素含有层叠上下文,我们可以理解为这个元素在z轴上就“高人一等”。一般情况下,当我们开发网页的时候,我们能看到的就是元素在页面上沿x轴y轴平铺,我们根本察觉不到元素在z轴上的层叠关系。因为这是观察者与元素显示位置的垂直距离,是抽象的。那么问题来了,层叠上下文是如何产生的?* HTML文档的根元素html标签本身就是层叠上下文(根层叠上下文* 普通元素设置position属性为非static值和设置了z-index属性为具体数值,这样就产生了层叠上下文。

发果叁 1304

Fiddler Everywhere保姆级教程:10分钟搞定手机HTTPS抓包(附证书配置避坑指南)

本文提供Fiddler Everywhere移动端HTTPS抓包的保姆级教程,涵盖环境配置、代理设置、证书安装及常见问题排查。重点解析如何正确安装并信任Fiddler根证书以解密HTTPS流量,帮助开发者快速搭建抓包环境,高效分析应用网络行为,提升调试效率。

git9versioner的博客 705

前端新特性

优先级提示是对现有浏览器资源加载优先级的补充。当以上因素对资源优先级控制的精细度不够时,就需要用到Priority Hints。

weixin_43294560的博客 1252

STM32F429+LAN8720实战:5分钟搞定LWIP裸机网络通讯(附完整代码)

本文详细介绍了如何在STM32F429微控制器上,结合LAN8720 PHY芯片,在裸机环境下快速部署和配置LWIP协议栈以实现网络通讯。内容涵盖硬件RMII接口连接、STM32CubeMX关键配置、代码移植与定制,以及常见问题排查方法,帮助工程师在资源受限的嵌入式系统中高效实现稳定的以太网功能。

2y3u4i5o6p的博客 962

经典损失函数——均方误差(MSE)和交叉熵误差(CEE)的python实现

损失函数(loss function)用来表示当前的神经网络对训练数据不拟合的程度。这个损失函数有很多,但是一般使用均方误差和交叉熵误差等。 1.均方误差(mean squared error) 先来看一下表达式: 用于将的求导结果变成,是神经网络的输出,是训练数据的标签值,k表示数据的维度。 用python实现: def MS...

Answer3664的博客 1万+

谈谈CSS层叠优先级

css层叠顺序总结

hsjajwbsbsjs的博客 1486

104报文解析工具

可选择包含报文的文本文件或日志文件进行解析,可选择按条数范围或时间范围,输出结果可以在报文解析显示区,也可以输出到文件。可以对文本内容的报文文件进行高级分析,包括遥信遥测等通讯数据的具体信息,通讯帧的统计,通讯次数的统计,各种错误的分析,报文的定位功能,传输的文件具体内容等。输入完成后点击工具栏的解析报文按钮或使用右键菜单的解析就可以对报文进行解析。在报文输入区输入待解析报文并解析后,解析结果就显示在报文解析显示区和报文定位展示区及报文定位条目区。当有多条报文解析后,可以通过报文列表树具体定位某条报文。

XZHOUMIN的博客 5949

前端——CSS(三)

1. CSS的三大特性 CSS有三个非常重要的三大特性:层叠性、继承性、优先级 1.1 层叠性 相同选择器给设置相同的样式,此时一个样式就会覆盖(层叠)另一个冲突的样式,层叠性主要解决样式冲突的问题。 层叠性原则: ·样式冲突,遵循的原则是就近原则,哪个样式离结构近,就执行哪个样式。 ·样式不冲突,不会层叠 <style> div { color: red; font-size: 18px; }

weixin_41545646的博客 139

别再只会用串口助手了!手把手教你用手机App调试HC-05蓝牙模块(STM32F103实战)

本文详细介绍了如何利用手机App调试HC-05蓝牙模块与STM32F103的无线连接,突破传统串口助手的限制。通过实战指南,开发者可以掌握移动性测试、实时监控和快速验证等高效调试技巧,优化蓝牙透传的稳定性和性能。

weixin_33670786的博客 428

RK3588S开发板实战:手把手教你搞定IMX415摄像头驱动配置(附调试日志分析)

本文提供了一份详细的RK3588S开发板配置IMX415摄像头驱动的实战指南。内容涵盖从环境准备、内核驱动编译、设备树节点编写到调试日志分析的完整流程,并重点解析了摄像头调试过程中的常见问题与解决方案,帮助开发者快速完成驱动配置与功能验证。

weixin_28285943的博客 205

CSS三大特性(层叠性、继承性、优先级)

目录 (1)CSS层叠性 (2)CSS继承性 (3)CSS优先级 什么是优先级? 优先级判断 优先级之!important 优先级权重 (4)总结: (1)CSS层叠性 是浏览器处理冲突的一个能力。如果一个css属性通过两个选择器设置到同一个元素上,那么这个时候一个属性就会将另一个属性层叠掉(覆盖) 覆盖原则:先看权重,高者去覆盖。权重一样就遵守就近原则,后来者居上。 (2)CSS继承性 作用:子元素可以继承父元素的样式。 特殊性: 并不是所有的属性都可以继承,

qq_52301431的博客 2015

工业相机图像格式深度解析:从Mono8到Mono12的选型与应用

本文深度解析工业相机黑白图像格式,重点对比Mono8、Mono10与Mono12的核心差异。文章从位深、动态范围和数据量等关键概念切入,详细阐述了不同格式的优缺点及适用场景,为工业视觉项目中的相机选型提供实战指南,帮助用户在精度、速度与成本间做出最优决策。

weixin_29207439的博客 262

CSS回顾-CSS样式优先级规则详解

本文深入探讨 CSS 样式优先级规则。先由对 h1 标签样式设定的思考引入,阐述优先级核心意义在于解决样式冲突。接着详细介绍基础优先级规则,包括!important、内联样式、ID 选择器、类等选择器的优先级顺序及其特点。同时讲解优先级计算规则,涵盖选择器间计算值、样式表顺序以及样式继承(如文本、列表、表格等相关样式的继承情况)。最后提出样式优先级冲突的最佳实践,如合理规划选择器、模块化设计、利用计算权重技巧和遵循样式表组织规范等,强调理解相关规则对创建高质量 CSS 样式表以实现完美网页视觉效果的重要性。

懒羊羊我小弟的博客 1712

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

2.3 CSS规则的优先级

源顺序(Source Order)是CSS中决定样式规则优先级的第三个关键因素,当两个或多个规则具有相同的特异性和重要性时,它就发挥作用了。通过理解和应用CSS优先级的概念,开发者可以更有效地控制网页的样式,确保在不同情况下都能提供一致和预期的用户体验。通过理解和合理利用源顺序,开发者可以更有效地控制样式的层叠和优先级,从而创建出更加一致和可维护的CSS代码。是一个强大的工具,但应该谨慎使用。通过理解和合理使用特异性,开发者可以更好地控制样式的优先级和层叠,从而创建出更加一致和可维护的CSS代码。

Python老吕的博客 846

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

CSS 优先级规则

多重样式优先级深入概念 优先级是浏览器是通过判断哪些属性值与元素最相关以决定并应用到该元素上的。优先级仅由选择器组成的匹配规则决定的。 优先级就是分配给指定的CSS声明的一个权重,它由匹配的选择器中的每一种选择器类型的数值决定。 优先级顺序 下列是一份优先级逐级增加的选择器列表: 通用选择器(*) 元素(类型)选择器 类选择器 属性选择器 伪类 ID 选择器 内联样式 !important 规...

极客神殿 641

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

CSS 权重:优先级规则

CSS 权重(Specificity)是浏览器用来决定哪个样式规则优先级更高的机制。当多个样式规则同时作用于同一个元素时,权重高的规则会覆盖权重低的规则。权重的计算基于选择器的类型,通常用四组数字表示,例如0,0,0,0。行内样式(如):权重为1,0,0,0。ID 选择器(如#myDiv):权重为0,1,0,0。类选择器、伪类选择器、属性选择器(如.myClass:hover):权重为0,0,1,0。元素选择器、伪元素选择器(如div::before):权重为0,0,0,1。通配符和继承:权重为。

体系化很难,碎片归纳很简单。 1271

CSS中的优先级规则是怎样的

当两个选择器具有相同的优先级时,源顺序(Source Order)决定了哪一个规则将被应用。出现在样式表后面的规则将覆盖前面的规则。/* 出现在样式表前面的规则 */div {color: red;/* 出现在样式表后面的规则 */div {在开发过程中,始终记得测试和验证你的样式是否按照预期工作。使用浏览器的开发者工具来检查元素的实际样式,可以帮助你诊断样式未按预期显示的原因。通过上述讨论,你应该对CSS优先级有了更深的理解,并能够在实际项目中更好地运用这一知识。

一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟! 1511

彻底弄懂CSS优先级规则

彻底弄懂CSS优先级规则 文章目录彻底弄懂CSS优先级规则1. css继承 & 距离1.1 css继承距离优先1.2 非继承的平级css距离无关,取决于加载顺序2. 单个选择器 & 优先级关系链2.1 demo1 — 优先级关系链应用2.2 demo2 — 基于形式的优先级3. 选择器组合 & 优先级计算4. !important 强行改变优先级 Write By CS逍遥剑仙 我的主页: www.csxiaoyao.com GitHub: github.com/csxiaoyao

禅林阆苑 1036

CSS 选择器的优先级规则是什么?

CSS 选择器的优先级规则是决定多个样式规则冲突时哪条规则生效的核心机制,其核心逻辑基于选择器的。理解权重计算和层叠规则,能有效避免样式冲突,编写更可控的代码。当多个选择器作用于同一元素时,需通过。的破坏性,仅在必要时使用。

破损的天堂鸟博客 911

CSS 中的优先级规则是怎样的?

CSS 中的优先级规则是怎样的?

商务合作欢迎私信我 7072

CSS 样式优先级规则与权重系统详解

CSS 样式优先级是决定当多条规则应用于同一个元素时,哪条规则会最终生效的规则体系。下面我将全面解析 CSS 优先级规则和权重计算方式。

weixin_40682342的博客 1379

CSS优先级规则以及如何提升优先级方案详解

CSS优先级由选择器特定性决定,内联样式权重最高(1000),其次是ID选择器(100)、类选择器(10)和元素选择器(1)。提升优先级的方法包括:增加选择器特定性、使用ID选择器、嵌套预处理器选择器、慎用!important等。在React/Vue/Angular等框架中,可通过CSS Modules、Scoped样式或深度选择器实现样式穿透。最佳实践建议遵循层叠原则,优先使用类选择器,避免滥用ID和!important。合理管理CSS优先级是构建可维护样式系统的关键,应通过良好的架构而非权重竞争来解决冲

qq_33254736的博客 1251

CSS样式优先级怎样划分?【CSS优先级规则】

如果仅仅将基础选择器的权重相加,后代选择器(包含11层div)的权重为11,大于类选择器“.inner”的权重10,文本将添加下画线。而“strong”选择器的权重虽然仅为1,但它大于继承样式的权重,所以页面中的文本显示为红色。在嵌套结构中、h不管父元素样式的权重多大,被子元素继承时,它的权重都为0,也就是说子元素定义的样式会覆盖继承来的样式。应用style属性的元素,其行内样式的权重非常高。此时外链式的id选择器和嵌入式的标签选择器权重不同,“#header”的权重更高,文字将显示为外部样式定义的红色。

CZ-001的博客 1183

CSS优先级计算规则

对于同一个元素,可以有多个选择器来指定它的颜色,但是最终生效的只有其中一个而已。这篇文章就是为了弄懂CSS优先级的计算规则。 先概括一下,CSS优先级由0,0,0,0这样的特殊值来表示,计算规则是左大右小的,举个例子:1,0,0,0 &amp;amp;gt; 0,99,99,99。特殊值越大,优先级越高。 再概括一下: - ID选择器的特殊性值,加0,1,0,0。 - 类选择器、属性选择器或伪类,加0...

qq_29051015的博客 1081
上一篇: java路径研究
下一篇: Lucene
名茶
博客等级 码龄17年 1粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值