padding:initial与padding:0

时间:2014-07-17 10:29:45

标签: html css keyword

padding:initial优于padding:0吗?例如:

<style>
  textarea {
    padding: 0;
  }
</style>
<textarea>Hello, world!</textarea>

2 个答案:

答案 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> 

通读https://developer.mozilla.org/en-US/docs/Web/CSS/initial