我是靠谱客的博主 迷你金针菇,这篇文章主要介绍css样式冲突怎么办,现在分享给大家,希望可以做个参考。

本教程操作环境:windows7系统、CSS3&&HTML5版、Dell G3电脑。

1. 细化选择符

通过使用组合器(Combinator)将选择器的描述写得更加精确,例如对于下述代码片段,如果想给.cellphones中的.apple增加样式,只使用.apple,势必会对.fruit中的.apple也造成影响。

复制代码
1
2
3
4
5
6
<div class="cellphones"> <div class="apple"></div> </div> <div class="fruit"> <div class="apple"></div> </div>
登录后复制

可以使用后代组合器(Descendant Combinator)或子代组合器(Child Combinator)这种更为精确的描述。描述得越精确,优先级越高,优先级更高的描述会覆盖优先级较低的描述。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/* 后代组合器:所有后代节点 */ .cellphones .apple { border: 1px solid black; } /* 更加精确的后代组合器 */ body .cellphones .apple { border: 1px solid blue; } /* 子代组合器:直接子节点 */ .cellphones > .apple { border: 1px solid red; }
登录后复制

如果给.apple按顺序加上上述全部样式,最终,边框将呈现蓝色。

详细的优先级规则参见CSS 优先级

2. 再写一次选择器名

本质上是上一种情况的特例。例如对于.apple,添加如下样式:

复制代码
1
2
3
4
5
6
.cellphones > .apple.apple { border: 1px solid purple; } .cellphones > .apple { border: 1px solid red; }
登录后复制

最终,边框将呈现紫色。

3. 改变CSS样式表中的顺序

对于相同类型选择器指定的样式,在CSS文件中的顺序靠后的样式会覆盖之前的样式。 例如对于下述代码中的div元素,浏览器渲染的结果会是红色的:

复制代码
1
<div class="redBorder" class="blackBorder"></div>
登录后复制
复制代码
1
2
3
4
5
6
.blackBorder { border: 1px solid black; } .redBorder { border: 1px solid red; }
登录后复制

需要注意的是,尽管在HTML文件中.blackBorder出现在.redBorder后,但优先级的判断是根据他们在CSS文件中的顺序。也就是说,CSS文件中更为靠后的.redBorder才会被采用。

4. 主动提升优先级(不建议)

还有一种简单粗暴但是并不建议的办法,就是在需要使用的样式后加上关键字!important可以将样式优先级提到极高。例如:

复制代码
1
<div class="redBorder" class="greenBorder"></div>
登录后复制
复制代码
1
2
3
4
5
6
.greenBorder { border: 1px solid green !important; } .redBorder { border: 1px solid red; }
登录后复制

对于上述代码,边框将显示为绿色。

使用 !important 是一个非常不好的习惯,会破坏样式表中固有的级联规则,使得调试变得非常困难!

推荐学习:css视频教程

以上就是css样式冲突怎么办的详细内容,更多请关注靠谱客其它相关文章!

最后

以上就是迷你金针菇最近收集整理的关于css样式冲突怎么办的全部内容,更多相关css样式冲突怎么办内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(106)

评论列表共有 0 条评论

立即
投稿
返回
顶部