问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

css样式的优先级顺序

发布网友 发布时间:2022-04-06 12:05

我来回答

2个回答

懂视网 时间:2022-04-06 16:26

本篇文章给大家介绍的是css样式优先级,带大家深入理解一下css样式优先级的顺序。

您是否遇到过尝试将css样式应用于元素的情况,但是却没有效果?页面似乎忽略了你定义的CSS,但你可能无法弄清楚原因。也许你会让!important或添加内联样式作为最后的实现手段。但实际上你遇到的问题很可能是css优先级之一。(推荐课程:css视频教程)

更好地理解哪些css样式优先使用可以更清晰更有组织的来写css代码,所以让我们看看控制给定html元素的三个css规则:

css优先级计算

css继承

css层叠

学习这些规则将使您的CSS开发更上一层楼。

优先级计算

想象一下,你的html包含一个应用了一类“生物”的段落。您还有以下两个css规则:

p { font-size :12px }
p.bio { font-size :14px }

你希望段落中的文字大小是12px还是14px?在这种情况下你可以猜测它将是14px。css(p.bio)的第二行比你的class =“bio”段更具体。然而,有时优先级并不容易看到。

例如,考虑以下html和css

<div id = “sidebar” >
<p class = “bio” >文字在这里</ p>
</ div>
div p.bio { font-size :14px }
#sidebar p { font-size :12px }

乍一看,第一行css可能看起来更具体,但实际上上面的第二行更符合段落的字体大小。这是为什么?

要回答这个问题,我们需要考虑优先级规则。

通过计算css的各种成分并以(a,b,c,d)形式表达它们来计算特异性。这将通过一个例子更清楚,但首先是组件。

元素,伪元素:d = 1 - (0,0,0,1)

类,伪类,属性:c = 1 - (0,0,1,0)

Id:b = 1 - (0,1,0,0)

内联样式:a = 1 - (1,0,0,0)

id比类更具体而不是元素。

您可以通过计算上述每一项并将a,b,c或d加1来计算优先级。同样重要的是要注意0,0,1,0比0,0,0,15更具体。让我们看一些例子来使计算更清晰。

p:1个元素 - (0,0,0,1)

div:1个元素 - (0,0,0,1)

#sidebar:1个id - (0,1,0,0)

div#sidebar:1个元素,1个id - (0,1,0,1)

div#sidebar p:2个元素,1个id - (0,1,0,2)

div#sidebar p.bio:2个元素,1个类,1个id - (0,1,1,2)

让我们再看一下上面的例子

div p.bio { font-size :14px } - (0,0,1,2)
#sidebar p { font-size :12px } - (0,1,0,1)

第二个具有更高的优先级,因此优先。

在我们前进之前的最后一点。重要性胜过优先级,当你使用!important标记css属性时,你会覆盖优先级规则等等

div p.bio { font-size :14px !important } 
#sidebar p { font-size :12px }

表示上面的第一行css优先于第二行而不是第二行。!important仍然是围绕基本规则的特殊性,如果您了解规则的运作方式,您应该永远不需要。

继承

继承背后的想法相对容易理解。元素从其父容器继承样式。如果将body标签设置为使用color:red,那么除非另有说明,否则正文中所有元素的文本也将为红色。

但是,并非所有css属性都是继承的。例如,边距和填充是非继承属性。如果在div上设置边距或填充,则div内的段落不会继承您在div上设置的边距和填充。该段落将使用默认的浏览器边距和填充,直到您另外声明。

但是,您可以显式设置属性以从其父容器继承样式。例如,您可以声明

p { margin :inherit ; 填充:继承 }

然后你的段落将从它的包含元素继承。

层叠

在最高级别,层叠是控制所有css优先级的,并且如下工作。

1、查找适用于相关元素和属性的所有css声明。

2、按原点和重量排序。Origin指的是声明的来源(作者样式,用户样式,浏览器默认值),权重指的是声明的重要性。(作者的权重大于用户的权重大于默认值。!important比正常声明更重要)

3、计算优先级

4、如果上述所有规则中的两个规则相同,那么最后一个规则获胜。嵌入在html中的CSS总是在外部样式表之后,而不管html中的顺序如何。

上面的#3很可能是你最需要注意的。使用#2只需了解您的样式将覆盖用户设置浏览器的方式,除非他们将规则设置为重要。

还要意识到您的样式将覆盖浏览器默认值,但这些默认值确实存在,并且通常会导致跨浏览器问题。使用重置文件,如Eric Meyer的CSS重置或Yahoo的YUI重置CSS有助于将默认样式排除在等式之外。

总结

希望以上内容有助于理清您的一些CSS优先级问题。大多数情况下,如果你的风格存在冲突,问题将归结为优先级。有时你还没有声明一些css,但是一个元素的行为方式你并不期望它可能从父容器或浏览器的默认样式继承了某些css。

声明css时的一般经验法则是声明具有最小优先级的属性来设置元素的样式。例如,使用#sidebar而不是div#sidebar。我承认打破这个一般规则远远超过我应该,但通过使用所需的最小优先级,它将使您更容易通过声明更具体的样式来覆盖样式。

如果您使用最具优先级,您可能会在以后遇到问题并发现自己必须添加不必要的HTML以便能够添加更多优先级,或者您可能会发现自己不再使用!important或声明内联样式。从最小的优先级开始,仅在需要时添加更多。

热心网友 时间:2022-04-06 13:34

行内样式 > 内部样式 > 外部样式
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
交通工程好考公务员吗 交通工程类考公时包括哪些专业 交通工程专业的能报考什么样的公务员 交通工程专业往哪些方向考公务员 交通工程可以考公务员有哪些岗位 我专业交通工程。能考什么类型的公务员 支付宝怎么关联另一个账号 支付宝怎么关联另一个支付宝 支付宝关联账号在哪里?怎么添加? 京东买手机发票可以开别人名字吗 四五个月没有登录了QQ绑定的手机号码没用了,密码也忘记了 现在QQ登不上怎么办? 手机怎么在绿幕上视频加照片 绿幕五官怎么换照片 ps如何把照片放到绿幕里? 如何检查性功能障碍? 性功能六项检查是哪6项? css的三种样式中哪种样式的优先级最高 粘马桶底部的白胶黏衣服上了怎么去除? 想考催乳师 请问广州哪里可以考 广州市花都区学催乳师可不可以申请劳动技能补贴啊? 广州有正规的催乳师的培训机构吗 广州哪里有专业的催乳师? 广州萝岗催乳师培训班哪家好 广州天河哪里有正规的催乳师培训中心 广州市白云区石井镇有催乳师吗? 麻薯面包的做法 奶香麻薯面包的做法,奶香麻薯面包怎么做好吃 麻薯面包的做法,麻薯面包怎么做好吃,麻薯面包的家常 韩式麻薯小面包的做法步骤图,怎么做好吃 酥脆的麻薯面包的做法,酥脆的麻薯面包怎么做 优酷投屏怎么没弹幕??? 微信里字体都大就是账单里明细刚打开就突然变小了是怎么回事? 要怎么设置才能够让微信里账单自己变小 微信帐单字体出来时大,一下子又小了,什么原? 打开微信后进入账单字体就变小了调节字体大小也不管用怎么回事? vivo手机设置通用字体大小,微信字体大小都可以调,唯独账单里的字体没有变化,请问怎么办?急 我安装了别的字体,微信账单字体乱了,怎么办? 微信账单导出是繁体字,手机设置里也没有开启繁体字模式该怎么弄? 微信所有的链接打开字都是大怎么更改,聊天字体正常。谢谢 梦见把皇帝的帽子拿了是怎么回事? 梦见哥穿皇上衣服。皇上帽子? 我今天白天做梦,梦见自己带着皇上的*帽子,还在路上看见有一群人骑着猪奔驰而过,帮忙解一下梦? wps自定义公式如何转换为文本格式 梦见天上飞来一个老人送帽子,送二个还有一个人要了一个帽子,是什么意思? 清朝皇帝戴的叫什么帽子,为什么要这么设计? 皇帝的帽子叫啥 延喜攻略中哪一集魏璎珞制作了帽子送给皇上 早上梦见皇上临死前送我一个白色发簪? 梦见马咬嘴 班级中秋晚会策划!班上只有18人。包括总体安排到细节,节目设置,主持,互动等。人数是个难题,请帮忙!