极乐门资源网 Design By www.ioogu.com

1. 细化选择符

通过使用组合器(Combinator)将选择器的描述写得更加精确(参考CSS选择器 - MDN  ),例如对于下述代码片段,如果想给.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 是一个非常不好的习惯,会破坏样式表中固有的级联规则,使得调试变得非常困难!

参考资料:
优先级 - MDN
css样式冲突怎么解决 - 魔法时光机

标签:
CSS,样式冲突

极乐门资源网 Design By www.ioogu.com
极乐门资源网 免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
极乐门资源网 Design By www.ioogu.com

评论“解决CSS样式冲突的几个办法(小结)”

暂无解决CSS样式冲突的几个办法(小结)的评论...

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。