在研究两者之间的差异时,我想引用CSS | MDN官方文档以供将来参考:
初始
初始CSS关键字将属性的初始值应用于元素。每个CSS属性都允许使用该属性,并且会导致为其指定属性的元素使用该属性的初始值。
因此,根据您的示例:
em {
color:initial;
}
<p style="color:red!important">
this text is red
<em>
this text is in the initial color (e.g. black)
</em>
this is red again
</p>
注意如何初始属性保留了最初的color
元素的属性。
取消设定
未设置CSS关键字是initial关键字和Inherited关键字的组合。像其他两个CSS级关键字一样,它可以应用于任何CSS属性,包括全部的CSS缩写。如果该属性从其父级继承,则将属性重置为其继承的值,否则,将其重置为其初始值。换句话说,在第一种情况下,它的行为类似于Inherit关键字,在第二种情况下,其行为与初始关键字类似。
因此,根据您的示例:
em {
color:unset;
}
<p style="color:red!important">
this text is red
<em>
this text's color has been unset (e.g. red)
</em>
this is red again
</p>
请注意,unset属性如何简单地重置color
元素的属性。
结论
这个想法很直截了当,但是实际上,在处理两个CSS属性的跨浏览器兼容性时,我会建议谨慎……截止到今天。