为什么标!important的属性没有把*中的属性覆盖掉

为什么没有执行font-size:18px !important。中的内容
图片描述

阅读 7.2k
4 个回答

因为!important这个样式是继承至父级元素。而CCS样式优先级有一条原则就是:
设定的永远大于继承的
如果你给当前文本所在的DOM节点一个!important属性的话,那它肯定就可以覆盖掉*中的样式了。

这里并不存在像上面所说的文件顺序的问题,只有当两个样式的优先级相同的时候才会受样式规则顺序的影响(后面的样式会覆盖前面的样式),而这里两个样式规则的优先级根本不一样。希望题主明白问题的根源所在,不要被误导了。

演示地址:http://codepen.io/CodingMonkeyzh/pen/BNZRdw

我又根据1楼的情况,重新分析了下,确实继承中的问题.在演示中的字体是span,但应用字体的样式是p,所以p中的span依然是使用继承中的样式,如果你需要覆盖继承的,只能对选中该元素标签进行覆盖样式书写,而不是该元素的父级或上上级.
改写后演示:http://codepen.io/yyman001/pen/ZGyyMO

general.css是不是放在后面?

看看你的CSS文件引入的顺序。layout.css放在General.css后面加载。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏