四时宝库

程序员的知识宝库

深入理解CSS的initial unset revert

对比标题的三个属性,得外加一个大家都熟悉的属性,inherit。

还得加一个层叠样式知识:

用户看到的样式 = W3C 标准样式 + 用户代理样式 + 程序样式。

且上面的公式满足层叠规则。

PS:用户代理多是指浏览器,就是常说的 UserAgent。是指负责显示 HTML 的终端。


正文

按照这样一个脑图先记一下:

我们这里使用 font-size 来举例说明。

initial

所谓 initial,如图,就是将这个属性的值设置为用户代理默认值

先问一下,font-size 的默认值是什么?16px?

是 medium,刺不刺激?

印象中的默认值是不是有:16px, 400, normal 等等。

大几百号属性,鬼记得住。

所以,initial 的作用,就是偷懒行为,统一用它设置用户代理默认值就完了。

unset

这个的特性是:

  • 有继承来的,有,就用
  • 没有继承来的,用 W3C 标准样式默认值

revert

用回用户代理样式默认值


实例对比

unset 与 revert 不单单是关联属性,主要区别在于标签上。

比如使用 h1 标签,font-size 的标准值是 medium,而浏览器环境下的用户代理设置默认是 2em,即 16px * 2 = 32px。

那么这段代码的展现其实就是这样:

<h1 style="font-size: initial;">initial</h1>
<h1 style="font-size: unset;">unset</h1>
<h1 style="font-size: revert;">revert</h1>


相当于:

<h1 style="font-size: medium;">initial</h1>
<h1 style="font-size: medium;">unset</h1>
<h1 style="font-size: 2em;">revert</h1>

而继承参与的情况可以这样看:

<style>
  body {
    font-size: xx-large;
  }
</style>

<h1 style="font-size: initial;">initial</h1>
<h1 style="font-size: unset;">unset</h1>
<h1 style="font-size: revert;">revert</h1>

这里给 body 加了样式,是大号字体,在 edge 下为 32px。

上面代码相当于

<style>
  body {
    font-size: xx-large;
  }
</style>

<h1 style="font-size: medium;">initial</h1>
<h1 style="font-size: inherit;">unset</h1>
<h1 style="font-size: 2em;">revert</h1>

总结

initial = 设置为属性的用户代理默认值,由于每个属性默认值不一定一样,所以可以偷懒统一设置

unset = 设置为该标签的此属性的标准默认值,有继承优先继承

revert = 设置为该标签的此属性的用户代理默认值

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接