CSS – initial, Inherit, unset, revert
参考
Understanding the “Initial”, “Inherit” and “Unset” CSS Keywords
【译】理解CSS关键字:“Initial”,“Inherit”和“Unset”
属性, 固定值, 相关值, 元素
display, width 是属性
block, inline, px 是固定值
inherit, initial, rem 是相关值
<div>, <span> 是元素
user agent stylesheet
当没有写任何 style 时, 某一些元素配上某些属性会有 user agent stylesheet (游览器默认样式)

比如 div + display = block, span + display = inline, h2 + font-size = 1.5em.
initial
initial 是相关值, 依据不同的属性会有不同的 value.
去查 MDN 就可以看到每一个元素的 initial value 了

display: initial 相等于 display: inline
initial 只看属性, user agent style 看属性 + 元素, 这是 2 者最大的区别, 所以,
div { display: initial } 和 span { display: initial } 结果都是 display: inline
而 user agent style, div + display = block, span + display = inline.
inherited property
有些属性有 cascade 效果, 比如 font-size, color (文本属性都有),
当给 html { font-size: 1.5rem } 后, 所有的子孙元素的 font-size 都会变成 1.5rem, 这些属性被称为 inherited property
非文本属性 width, display, position 则不会 cascade, 它们被称为 non-inherited property.
MDN 上有注明属性是否是 inherited
display 属性

font-size 属性

inherit
inherit 是相关值, 它会去找 parent element 的属性值, 如果 parent 也是 inherit 就继续往上找, 如果 parent 没有 set 那就用 parent 的 user agent style, 如果没有 user agent style 就用 initial 值.
unset
对于 inherited property, unset 和 inherit 是一样的.
对于 non-inherited property, unset 和 initial 是一样的.
当 selector 匹配超过一个元素时才会用到 unset, 比如 * { display: unset }
不然用 inherit 或 initial 就够了
revert
revert 和 unset 是一样的, 唯一的区别是它是用 user agent style 而不是 initial 值 (当然如果没有 user agent style 就用 initail)
总结:
1. initial != user agent style, initial 只关心属性, user agent style 关心元素 + 属性
2. inherited property 指的是那种在 parent set style 会 cascade 到子孙的, 比如 font-size, color (文本 style).
non-inherited property 就是其它不会 cascade 的, 比如 width, display, position
3. inherited property + unset = inherit
non-inherited property + unset = initial
4. inherited property + revert = inherit
non-inherited property + revert = user agnet style
CSS – initial, Inherit, unset, revert的更多相关文章
- css样式关键字(initial,inherit,unset,revert,all)
关键字 在CSS中,有4个关键字理论上可以应用于任何的CSS属性,它们是initial(初始).inherit(继承).unset(未设置).revert(还原).而all的取值只能是以上这4个关键字 ...
- css 中的 initial inherit unset 意思
写css时,在对属性进行选值,经常遇到unset , initial,inherit三个值.这几个值的含义. 1.inherit 可继承性 继承的意思. 每一个 CSS 属性都有一个特性就是,这个属性 ...
- CSS继承控制:inherit、initial和unset
CSS里有三种常用的属性值继承方式:inherit,initial和unset.我们用一个简单的例子来演示一下: <ul style="color: green;"> ...
- The inherit, initial, and unset values
The inherit, initial, and unset keywords are special values you can give to any CSS property. Tests ...
- 谈谈一些有趣的CSS题目(四)-- 从倒影说起,谈谈 CSS 继承 inherit
开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...
- 从倒影说起,谈谈 CSS 继承 inherit(转)
从倒影说起,谈谈 CSS 继承 inherit 给定一张有如下背景图的 div: 制作如下的倒影效果: 方法很多,但是我们当然要寻找最快最便捷的方法,至少得是无论图片怎么变化,div 大小怎么变化,我 ...
- 谈谈一些有趣的CSS题目-- 从倒影说起,谈谈 CSS 继承 inherit
开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你 ...
- CSS的inherit与auto使用分析
一个很显浅的寓言,千年老树,电打雷劈,屹立不倒,却毁于蝼蚁的侵袭之下.自以为精通CSS的人,常常被一些小问题搞到头晕脑胀. 通常是一个很小的数值,经过层层放大歪曲后,整个布局就走形了.CSS是一门很简 ...
- CSS中inherit指定继承的使用方法和auto的区别
CSS中的每个属性都有一个特定值"inherit",其含义是指定继承父元素的相应属性,使用inherit一方面在代码上能地表明要继承于父元素的样式属性,另一方面也使子元素继承了那些 ...
- CSS继承inherit | elementUI NavMenu vertical竖版 加 A标记 外联 不能继承上层color,需要手写下color:inherit;
<li data-v-576b9cf5="" role="menuitem" tabindex="0" class="el- ...
随机推荐
- 各类配置文件(DNS, Firefox,Edge)
DNS配置 腾讯DNS: 119.29.29.29 2402:4e00:: 2402:4e00:1:: 阿里云: 223.5.5.5 223.6.6.6 2400:3200::1 2400:3200 ...
- oeasy教您玩转vim - 26 - 缩进设置
缩进设置 回忆上节课内容 这次了解了颜色的细节 设置 256 色模式 :set t_Co=256 然后确定了具体的各种颜色 还可以生成网页 :TOhtml 还有什么好玩的么? 缩进设置 在 ...
- SQL Server 帐号权限管理及C#编程应用(图解)
昨晚在群里讲解这部分内容,因为好久没操作过了,差点翻车...今天把它整理一下发出来,方便没听明白的小伙伴学习和理解. 我们平时学习数据库时,要么使用sa帐号,要么用windows默认帐号登录,总之都拥 ...
- 学习笔记--Java中的数据类型
Java中的数据类型 /** * Java中的数据类型: * 程序当中有很多的数据,每一个数据拥有与之相关的类型. * * * 1. 数据类型的作用: * 不同类型的数据占用的空间大小不同,数据类型的 ...
- android实现多线程基础
//创建线程类 class Mythread extends Thread{ @Override public void run(){ //定义行为 } } //实例化线程类 MyThread mt= ...
- Linux 有趣命令
代码雨 1.上传软件包 Linux 获取 wget https://jaist.dl.sourceforge.net/project/cmatrix/cmatrix/1.2a/cmatrix-1.2a ...
- python 音频处理(1)——重采样、音高提取
采集数据->采样率调整 使用torchaudio进行重采样(cpu版) 首先导入相关包,既然使用torch作为我们的选项,安装torch环境我就不必多说了,如果你不想用torch可以使用后文提到 ...
- Label Studio数据标注--通过源码安装
Label Studio是Heartex公司开发的一款在线数据标注工具,分为社区版(开源)和企业版(云服务,收费),企业版提供了增强的安全性(单点登录.角色基于访问控制.SOC2).团队管理.分析和报 ...
- 【Shiro】07 散列算法 & 凭证配置
[散列算法概述] 用于生成数据的摘要信息,不可逆算法,用于存储密码或者密文数据. 常见散列算法类型:MD5.SHA 一般进行散列时提供一个"盐",即系统知道的"干扰数据& ...
- 大语言模型(LLM)运行报错:AttributeError: module 'streamlit' has no attribute 'cache_resource'
解决方法: https://blog.csdn.net/javastart/article/details/130785100 (图:https://blog.csdn.net/javastart/a ...