initial、inherit、unset、revert和all

前面的话
在CSS中,有4个关键字理论上可以应用于任何的CSS属性,它们是initial(初始)、inherit(继承)、unset(未设置)、revert(还原)。而all的取值只能是以上这4个关键字。本文将介绍initial、inherit、unset、revert和all
initial
表示元素属性的初始默认值(该默认值由官方CSS规范定义)
兼容性: IE不支持
[注意]关于各属性的初始默认值移步至此
//display在官方CSS规范中定义的默认值是inline <style> .test{display: initial;} </style> <div class="box"> <div class="test">测试一</div><span>文字</span> <br> <div >测试二</div><span>文字</span> </div>
inherit
表示元素的直接父元素对应属性的计算值
兼容性: IE7-不支持
<style> .box{ border: 1px solid black; padding: 10px; width: 100px; } .test{ border: inherit; height: 30px; } </style> <div class="box"> <div class="test">测试一</div> </div> <div class="box"> <div class="in"> <div class="test">测试二</div> </div> </div>
unset
unset相对于initial和inherit而言,相对复杂一点。表示如果该属性默认可继承,则值为inherit;否则值为initial。实际上,设置unset相当于不设置
兼容性: IE不支持,safari9-不支持,ios9.2-不支持,android4.4.4-不支持
【常用默认可继承样式】
color
cursor
direction
font
letter-spacing
line-height
list-style
text-align
text-indent
text-shadow
text-transform
white-space
word-break
word-spacing
word-wrap
writing-mode
//内容为测试一的元素和内容为测试二的元素的样式是一样的 <style> .box{ border: 1px solid black; padding: 10px; width: 100px; color: red; } .test1{ border: unset; color: unset; } </style> <div class="box"> <div class="test">测试一</div> <div>测试二</div> </div>
revert
表示样式表中定义的元素属性的默认值。若用户定义样式表中显式设置,则按此设置;否则,按照浏览器定义样式表中的样式设置;否则,等价于unset
兼容性: 只有safari9.1+和ios9.3+支持
all
表示重设除unicode-bidi和direction之外的所有CSS属性的属性值,取值只能是initial、inherit、unset和revert
兼容性: IE不支持,safari9-不支持,ios9.2-不支持,android4.4-不支持
<style> .test{ border: 1px solid black; padding: 20px; color: red; } .in{ /* all: initial; all: inherit; all: unset; all: revert; */ } </style> <div class="test"> <div class="in">测试文字</div> </div>
【1】当all:initial时,.in的所有属性都取默认值
border:none;padding:0;color:black;
【2】当all:inherit时,.in的所有属性都取父元素继承值
border:1px solid black;padding:20px;color:red;
【3】当all:unset时,.in的所有属性都相当于不设置值,默认可继承的继承,不可继承的保持默认值
border:none;padding:0;color:red;
好的代码像粥一样,都是用时间熬出来的

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?