padding:initial
优于padding:0
吗?例如:
<style>
textarea {
padding: 0;
}
</style>
<textarea>Hello, world!</textarea>
答案 0 :(得分:4)
它们的意思相同,因为padding
的初始值实际上是所有方面都为零。您可以在padding
的支柱中找到此信息,并在规范的this section中找到它的长尾。
在这种情况下,考虑到padding
属性的性质,以及此初始值基本上是常识的事实,设置padding: initial
的优势并不大。 padding: 0
。
事实上,有一个缺点,这是因为它是一个相对较新的关键字,因此它仍然是不完整的浏览器支持。也就是说,如果此元素上的padding
尚未为零,则不支持该关键字的浏览器将完全忽略该声明,从而导致不属性重置为零。
initial
关键字与CSS3 Cascading module中定义的新属性一起使用时最为有用(其中没有一个已实现AFAIK,且关键字本身已定义)。当您只想将属性重置为其初始值而不关心实际值是什么时,也可以使用它,这对于默认继承的属性尤其有用,例如color
(尽管初始值)在那种情况下将是currentColor
),或者在“初始”值可以根据布局而变化的情况下,因此不能被确定为固定值。然而,这种情况很少见。
最后,请注意“初始值”和“浏览器默认值”不一样;初始值由spec定义,它与浏览器在某些元素上分配给某些属性的值分开,作为其默认样式表的一部分。没有可靠的方法可以将属性重置为给定元素的浏览器默认值,而无需使用先验知识甚至JavaScript来确定此默认值。有关说明,请参阅this answer。
答案 1 :(得分:0)
Actualy两者都是相同的,但Initial
给开发人员更多的自由。(@ simon的评论)它不能总是为零,它可以是任何初始值。
因此使用填充没有太大的优势:初始结束 填充:0
初始CSS关键字将属性的初始值应用于元素。它允许在每个CSS属性上导致 指定使用的初始值的元素 属性。
另一个例子
<p style="color:red">
this text is red
<em style="color:initial">
this text is in the initial color (e.g. black)
</em>
this is red again
</p>