CSS中出现样式冲突如何解决
今天就跟大家聊聊有关CSS中出现样式冲突如何解决,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
1. 细化选择符
通过使用组合器(Combinator)将选择器的描述写得更加精确(参考CSS选择器 - MDN ),例如对于下述代码片段,如果想给.cellphones中的.apple增加样式,只使用.apple,势必会对.fruit中的.apple也造成影响。
<divclass="cellphones"> <divclass="apple"></div> </div> <divclass="fruit"> <divclass="apple"></div> </div>
可以使用后代组合器(Descendant Combinator)或子代组合器(Child Combinator)这种更为精确的描述。描述得越精确,优先级越高,优先级更高的描述会覆盖优先级较低的描述。
/*后代组合器:所有后代节点*/ .cellphones.apple{ border:1pxsolidblack; } /*更加精确的后代组合器*/ body.cellphones.apple{ border:1pxsolidblue; } /*子代组合器:直接子节点*/ .cellphones>.apple{ border:1pxsolidred; }
如果给.apple按顺序加上上述全部样式,最终,边框将呈现蓝色。
详细的优先级规则参见CSS 优先级
2. 再写一次选择器名
本质上是上一种情况的特例。例如对于.apple,添加如下样式:
.cellphones>.apple.apple{ border:1pxsolidpurple; } .cellphones>.apple{ border:1pxsolidred; }
最终,边框将呈现紫色。
3. 改变CSS样式表中的顺序
对于相同类型选择器指定的样式,在CSS文件中的顺序靠后的样式会覆盖之前的样式。
例如对于下述代码中的div元素,浏览器渲染的结果会是红色的:
<divclass="redBorder"class="blackBorder"></div>
.blackBorder{ border:1pxsolidblack; } .redBorder{ border:1pxsolidred; }
需要注意的是,尽管在HTML文件中.blackBorder出现在.redBorder后,但优先级的判断是根据他们在CSS文件中的顺序。也就是说,CSS文件中更为靠后的.redBorder才会被采用。
4. 主动提升优先级(不建议)
还有一种简单粗暴但是并不建议的办法,就是在需要使用的样式后加上关键字!important可以将样式优先级提到极高。例如:
<divclass="redBorder"class="greenBorder"></div>
.greenBorder{ border:1pxsolidgreen!important; } .redBorder{ border:1pxsolidred; }
看完上述内容,你们对CSS中出现样式冲突如何解决有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注恰卡编程网行业资讯频道,感谢大家的支持。
推荐阅读
-
CSS中如何让auto height支持过渡动画
CSS中如何让autoheight支持过渡动画这篇文章主要讲解了...
-
css语言的概念是什么
css语言的概念是什么这篇文章主要讲解了“css语言的概念是什么”...
-
php 压缩CSS代码
-
PHP工程师需要掌握什么技能?
-
泰牛韩顺平PHP四大模块实战开发教程全集网盘下载
-
css中的margin-right怎么设置
css中的margin-right怎么设置本篇内容主要讲解“css...
-
css元素浮动所需注意的事项有哪些
-
引入css样式使用的标签是哪个
-
css复合选择器有哪几种
css复合选择器有哪几种本篇内容介绍了“css复合选择器有哪几种”...
-
css样式表由什么组成
css样式表由什么组成这篇文章主要介绍“css样式表由什么组成”,...