让你彻底搞清浏览器的的渲染——CSS属性值的计算过程

本文详细解析了CSS属性值的计算过程,包括确定声明值、解决层叠冲突、使用继承和默认值等步骤,以及如何解决特定元素如a标签的颜色继承问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

属性值的计算过程

定义:一个元素,从所有属性都没有值,到所有属性都有值,这个计算过程,叫做属性值计算过程

渲染每一个元素的前提条件:该元素的所有CSS属性必须有值

一个元素一个元素依次渲染,顺序按照页面文档的树形目录结构进行
在这里插入图片描述

过程简介

无属性值->确定声明值->层叠冲突->使用继承->使用默认值->每个属性都有值

  1. 确定声明值:参考样式表中没有冲突的声明,直接作为CSS属性值。
  2. 层叠冲突:对样式表中有冲突的声明使用层叠规则,确定CSS属性值。
  3. 使用继承:对仍然没有值的属性,若可以继承,则继承父元素。
  4. 对仍然没有值的属性,使用默认值

关于a元素的颜色继承问题

<style>
div{
    color:red;
}
</style>
<div>
<a href="">超链接</a>
<p>p</p>
</div>

你会发现,a元素并没有继承父元素的颜色,而是原色,这是因为在浏览器的默认样式表中已经有了color的属性值,所以color属性在确定声明值时已经确定个属性值。

特殊的两个CSS取值:

  • inherited:手动(强制)继承,将父元素的值取出应用到该元素。
  • initial:初始值,将该元素设置为默认值。
    a元素颜色继承解决办法
<style>
a{
    color:inherited;/*强制继承*/
}/*此时根据层叠冲突可知该样式被浏览器选中,color会从父元素中继承属性值,相当于提前继承*/
</style>

initial的使用:

<style>
div{
    background:lightblue;/*亮蓝色*/
}
.mydiv{
    background:initial;/*透明色*/
}
</style>
<div class="mydiv">

</div>

此时背景色就会变为浏览器原始的透明色。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无所畏惧的man

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值