是否padding:initial有过任何优势padding:0?例子:
<style>
textarea {
padding: 0;
}
</style>
<textarea>Hello, world!</textarea>
Run Code Online (Sandbox Code Playgroud)
它们的意思是一样的,因为 的初始值padding实际上在所有方面都为零。您可以在规范的这一部分的 propdefs 中找到padding它及其常用内容。
在这种情况下,考虑到属性的padding性质,以及它的初始值在这一点上基本上是常识的事实,设置padding: initialover并没有太大的优势padding: 0。
事实上,有一个缺点,那就是由于它是一个相对较新的关键字,因此浏览器支持尚不完整。也就是说,如果padding该元素上的值尚未为零,则不支持该关键字的浏览器将完全忽略该声明,从而导致该属性不会被重置为零。
initial当与CSS3 Cascading 模块中定义的新属性一起使用时,关键字最有用(AFAIK 还没有实现,并且定义了关键字本身)。当您只想将属性重置为其初始值而不关心该值实际是什么时,也可以使用它,这对于默认继承的属性特别有用,例如color(尽管在这种情况下的初始值是currentColor),或者“初始”值可能会因布局而异,因此无法确定为固定值。然而,这种情况无疑是非常罕见的。
最后,请注意“初始值”和“浏览器默认值”是不一样的;初始值由规范定义,它与浏览器为某些元素的某些属性分配的值分开,作为其默认样式表的一部分。在不使用先验知识甚至 JavaScript 来确定此默认值的情况下,没有可靠的方法将给定元素的属性重置为其浏览器默认值。请参阅此答案以获取说明。