CSS 一个样式 先后加两次 !important 后面的会覆盖前面的吗?
在仅有 (1) 和 (2) 时,(1) 生效,因为 (1) 的权值比 (2) 高;在 (1) (2) (3) 并存时,(3) 生效,因为虽然 (2)(3) 的权值一样,但 (3) 是后声明的,会覆盖 (2)。解决方法如下:
1、首先新建一个html文件,命名为test.html。
2、在test.html文件内,使用div标签创建图层1,同时设置div的class为div1,主要用于下面通过该class来设置css样式。
3、在test.html文件内,再使用div标签创建图层2,同时设置div的class为div2。
4、在css标签内,对页面的div元素进行样式统一设置,定义它们的宽度和高度都为250px。
5、在css标签内,对类名div1的div(图层1)进行样式设置,使用position设置div为相对定位,使用background设置div背景颜色为红色,使用z-index设置div层级为1。
6、最后在浏览器打开test.html文件,查看实现的效果,就完成了。
当然会,CSS又叫层叠样式表,所谓“层叠”,就是允许多条相同样式出现,相同的样式遵循后来居上的原则,后面的覆盖前面的。
测试用例:
<!DOCTYPE html>
<html lang="zh-cmn-Hans">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Examples</title>
<style>
a {color: red !important;}
a {color: orange !important;}
</style>
</head>
<body>
<a href="#">我是文字</a>
</body>
</html>
结果是:“我是文字”这四个字显示为橙色。
这是比较基本的层叠规则计算问题了。
<div class="sample"></div>
.sample { background: red!important; } /* (1) */
div { background: red!important; } /* (2) */
.sample { background:red!important; } /* (3) */
在仅有 (1) 和 (2) 时,(1) 生效,因为 (1) 的权值比 (2) 高;
在 (1) (2) (3) 并存时,(3) 生效,因为虽然 (2)(3) 的权值一样,但 (3) 是后声明的,会覆盖 (2)。