CSS中的权重

html-css036

CSS中的权重,第1张

元素会被多个样式一层层作用,这就是层叠样式表的来源。如果多个样式作用在元素上就会产生优先级权重的问题。

零、属性后面使用!important,权重最大,会覆盖页面内任何位置定义的元素样式。

一、内联样式,权重为1000【写在HTML元素的style属性中】

二、ID选择器,权重为0100【非内联样式】

三、类、伪类、属性选择器,权重为0010【非内联样式】

四、标签、伪元素选择器,权重为0001【非内联样式】

五、通配符、子选择器、相邻选择器等,权重为0000【非内联样式】

六、继承的样式没有权重

注意

没有权重 权重为0 权重为0 的权重比 没有权重 的大,优先级高

1、 选择器中 ID选择器 的权重【a = 数量 * 权重】

2、 选择器中 类、伪类、属性选择器 的权重【b = 数量 * 权重】

3、 选择器中 标签、伪元素选择器 的权重【c = 数量 * 权重】

4、 最终的权重w = a + b + c

运行截图

width:宽度【块级元素的会继承父类的内容宽度contentwidth,】

color:字体的颜色

css样式表的权重关系:

内联样式表的权重最大!

内部和外部样式的权重,和书写的前后顺序有关。(放在后面的会把放在前面的样式覆盖掉,覆盖的只是相同属性的样式,不同属性的样式会继续执行。)

!important ->当前声明具有最高权重!

语法:background:red!important

id选择器>class选择器>标签选择器>通配选择器

以下是权重的规则:标签的权重为1,class的权重为10,id的权重为100,以下例子是演示各种定义的权重值:

/*权重为1*/

div{

}

/*权重为10*/

.class1{

}

/*权重为100*/

#id1{

}

/*权重为100+1=101*/

#id1 div{

}

/*权重为10+1=11*/

.class1 div{

}

/*权重为10+10+1=21*/

.class1 .class2 div{

}

如果权重相同,则最后定义的样式会起作用,但是应该避免这种情况出现