CSS样式冲突的情况怎样处理,有哪些解决方案
Admin 2022-11-11 群英技术资讯 312 次浏览
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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
浅谈Flex布局与缩放比例计算,一些朋友可能会遇到这方面的问题,对此在下文小编向大家来讲解一下,内容详细,易于理解,希望大家阅读完这篇能有收获哦,有需要的朋友就往下看吧!
怎么用CSS3实现对图片的放大效果方法一,利用transform属性配合scale()方法transform 属性向元素应用 2D 或 3D 转换。该属性允许我们对元素进行旋转、缩放、移动或倾斜。scal
chrome最小字体限制的问题如何解决?一些朋友可能知道Chrome 默认最小字体是12px,这样的设计也是出于为了更好显示中文,但是这样的设计也有一个坏处,就是可能会出现某些上标、下标字体过大的情况,这对于用户体验并不好,那么我们有没有什么解决方法呢?接下来给大家分享两种方法,感兴趣的朋友可以了解看看。
本文主要介绍的是关于盒模型大小的内容,下文有详细的介绍与盒模型大小相关的值以及盒模型大小的计算,对新手学习盒模型的内容有一定的帮,需要的朋友可以了解看看,接下来我们就一起来学习一下吧。
怎么利用CSS实现圆角及波浪效果?下面本篇文章带大家了解一下怎么巧用CSS滤镜构建圆角及波浪效果,希望对大家有所帮助!
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008