CSS 一个样式 先后加两次 !important 后面的会覆盖前面的吗?

html-css071

CSS 一个样式 先后加两次 !important 后面的会覆盖前面的吗?,第1张

在仅有 (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文件,查看实现的效果,就完成了。

可以有三种理解方式,如下:

一:层叠性指的是样式的优先级,当产生冲突时以优先级高的为准。

开发者样式>读者样式>浏览器样式(除非使用!important标记

id选择符>(伪)类选择符>元素选择符

权重相同时取后面定义的样式

二:

CSS层叠性是指CSS样式在针对同一元素配置同一属性时,依据层叠规则(权重)来处理冲突,选择应用权重高的CSS选择器所指定的属性,一般也被描述为权重高的覆盖权重低的,因此也称作层叠。每个CSS选择器都会有一个权重,当两个选择器同时配置同一元素的同一属性时(比如一个设置color:red,另一个color:black),就会产生冲突,而解决冲突的方案就是CSS选择器的权重,权重高的来覆盖权重低的。

三:层叠性指的是上级标签的样式会自动继承到其所有下级标签,如针对<body>设置的标签选择器所设的字体样式会自动应用到<body>下的<p>中,除非<p>重写了相关样式将其覆盖。