码迷,mamicode.com
首页 > Web开发 > 详细

CSS层叠和继承

时间:2018-06-23 17:17:27      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:数字   ali   默认   其他   分组   css   文本   兼容性   reset   

层叠

当有声明冲突的时候,浏览器会自动触发层叠机制

声明冲突:同一样式,不同的值,给同一个标签就会产生声明冲突

层叠的过程

1、比较优先级

一个声明的优先级,与它的来源和重要性有关

来源:1.作者(开发者)样式表:外部样式表;内部样式表;行内样式表

2.浏览器默认样式表

3.用户样式表

优先级排序:用户样式表>作者样式表>浏览器样式表

重要性:若属性值后跟上!important,则表示一条重要声明,否则,表示普通声明

例:color:red;普通声明

color:red !important;重要声明

2、比较特殊性(特指值/特指度)

每一个声明都有一个特殊性

一个声明的特殊性,取决于规则适用范围的大小,规则适用范围越大,特殊性越低;适用范围越小,特殊性越高

行内样式>ID选择器>类选择器>元素选择器>通配符选择器

在比较特殊性时,每一个冲突的声明,会生成4个数字(a,b,c,d),a越大,特殊性越高,若a相同,比较b,b越大,特殊性越高,依次类推

a:若声明时行内样式,则为1,否则为0

b:规则中id选择器的个数,有1算1,有几个算几个

c:规则中类选择器,伪类选择器和属性选择器的个数,相加

d:规则中元素选择器,伪元素选择器的总个数

通配符选择器特殊性为0

当计算选择器分组(并集选择器)的时候,要分开计算

3、比较源次级

最后出现的声明胜出,其他的全部淘汰

该规则的实际应用:

CSS Reset 代码前置

CSS重置文件 Reset.css 解决兼容性

a元素的伪类书写顺序

继承

继承(inherit),是指子元素会自动拥有父元素的某些css属性

并不是所有css属性都可以被子元素继承

可被继承的属性:

color,font-size,font-weight,text-align(基本上文本类的样式都可以继承)

不可被继承的属性:

background-color

继承发生的场景

一个元素的某个css属性,只有满足以下两个条件,才会继承父元素:

  • 该属性是可继承的属性

  • 该属性在样式表中没有声明

强制继承

强制继承也叫显式继承,是指将css属性值设置为inherit

这样做,通常有两个原因:

  • 为了继承有些不可继承的属性

  • 为了继承已被声明过的属性

CSS层叠和继承

标签:数字   ali   默认   其他   分组   css   文本   兼容性   reset   

原文地址:https://www.cnblogs.com/lp1995/p/9217387.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!