CSS样式冲突的情况怎样处理,有哪些解决方案
Admin 2022-11-11 群英技术资讯 1403 次浏览
这篇文章主要介绍“CSS样式冲突的情况怎样处理,有哪些解决方案”,有一些人在CSS样式冲突的情况怎样处理,有哪些解决方案的问题上存在疑惑,接下来小编就给大家来介绍一下相关的内容,希望对大家解答有帮助,有这个方面学习需要的朋友就继续往下看吧。1. 细化选择符
通过使用组合器(Combinator)将选择器的描述写得更加精确,例如对于下述代码片段,如果想给.cellphones中的.apple增加样式,只使用.apple,势必会对.fruit中的.apple也造成影响。
<div class="cellphones"> <div class="apple"></div> </div> <div class="fruit"> <div class="apple"></div> </div>
可以使用后代组合器(Descendant Combinator)或子代组合器(Child Combinator)这种更为精确的描述。描述得越精确,优先级越高,优先级更高的描述会覆盖优先级较低的描述。
/* 后代组合器:所有后代节点 */
.cellphones .apple {
border: 1px solid black;
}
/* 更加精确的后代组合器 */
body .cellphones .apple {
border: 1px solid blue;
}
/* 子代组合器:直接子节点 */
.cellphones > .apple {
border: 1px solid red;
}
如果给.apple按顺序加上上述全部样式,最终,边框将呈现蓝色。
详细的优先级规则参见CSS 优先级
2. 再写一次选择器名
本质上是上一种情况的特例。例如对于.apple,添加如下样式:
.cellphones > .apple.apple {
border: 1px solid purple;
}
.cellphones > .apple {
border: 1px solid red;
}
最终,边框将呈现紫色。
3. 改变CSS样式表中的顺序
对于相同类型选择器指定的样式,在CSS文件中的顺序靠后的样式会覆盖之前的样式。 例如对于下述代码中的div元素,浏览器渲染的结果会是红色的:
<div class="redBorder" class="blackBorder"></div>
.blackBorder {
border: 1px solid black;
}
.redBorder {
border: 1px solid red;
}
需要注意的是,尽管在HTML文件中.blackBorder出现在.redBorder后,但优先级的判断是根据他们在CSS文件中的顺序。也就是说,CSS文件中更为靠后的.redBorder才会被采用。
4. 主动提升优先级(不建议)
还有一种简单粗暴但是并不建议的办法,就是在需要使用的样式后加上关键字!important可以将样式优先级提到极高。例如:
<div class="redBorder" class="greenBorder"></div>
.greenBorder {
border: 1px solid green !important;
}
.redBorder {
border: 1px solid red;
}
对于上述代码,边框将显示为绿色。
使用 !important 是一个非常不好的习惯,会破坏样式表中固有的级联规则,使得调试变得非常困难!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
表面看起来,z-index 似乎是一个很简单的属性,你给它设置哪个值,元素就会位于 z 轴的哪个位置。但它实际上并没有我们想象的这么简单,这个属性背后是一系列决定元素所在层级的规则。在进行今天的介绍前,我们先列出三个问题,如果你能一眼看出它们的解决方案,那么恭喜你掌...
网格区域(grid-area)是一个逻辑空间,主要用来放置一个或多个网格单元格。定义网格区域有两种方式,一种是通过网格线来定义,另一种是通过grid-template-areas来定义。
css性能优化的解决办法:1、内联首屏关键CSS,性能优化有一个重要的指标,第一次有效绘制,内部CSS可以提前浏览器开始页面渲染。2、异步加载CSS。
text-indent属性规定文本块中首行文本的缩进。注释:允许使用负值。如果使用负值,那么首行会被缩进到左边。注意:在CSS2.1之前,text-indent总是继承计算值,而不是声明值。将段落的第一行缩进50像素:代码如下复制代码p{text-indent:50px;}text-indent:2em定义了文本缩进2em,em是相对长度单位,在这里你设置的字体大小有 ...
这篇文章主要介绍了html5实现可拖拽移动的悬浮图标的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008