1、HTML文档的渲染过程:
/**
先加载HTML代码,搭建出骨架;
然后按照HTML文档树的树形顺序依次给每个元素渲染样式属性;
*/
2、每个元素渲染CSS属性是如何渲染的:
/**
1、每个元素渲染的前提条件是:该元素的所有CSS属性都必须有值(我们可能只指定部分CSS属性,
但是那些默认的CSS属性也必须有值);
2、属性值计算过程:一个元素,从所有属性都没有值,到所有属性都有值,浏览器会自动帮我们计算,
这个计算过程叫做属性值计算过程;
*/
属性值的计算过程.png
/**
1、确定声明值:将样式表(作者样式表和浏览器默认样式表)中没有冲突的样式声明,作为CSS属性值;
2、层叠冲突:对于样式表中有冲突的声明使用层叠规则(比较重要性、比较特殊性、比较源次序),
确定CSS属性值;
3、使用继承:对于执行过前两步仍然没有值的属性,若可以继承,则继承父元素的值;
4、使用默认值:对仍然没有值的属性,使用默认值;
执行完这四个操作,这个元素的属性值才全部有值,元素可以进行渲染;
*/
3、一个例子:
div{
color:red;
font-size: 24px;
}
<div>
<a href="">这是a标签</a>
<p>这是p标签</p>
</div>
例子.png
/**
原理:根据属性值得计算过程,a标签首先使用的是浏览器默认的字体颜色,所以没有继承父元素的字体颜色
但是由于没有默认的字体大小,所以继承了父元素的字体大小;
*/
// 如何让a元素继承父类的字体颜色:
a{
color:inherit;
}
// inherit 属性的意思是继承父元素的对应样式;
4、两个特殊的CSS属性值:
inherit:手动(强制)继承,将父元素的值取出应用到该元素;
initial:初始值,将该属性值设置为默认值;