我认为initial值将还原最初呈现的样式(由浏览器的内部用户代理样式表应用)。

例:

div.inline {
  display: inline;
}

div.initial {
  display: initial;
}

我期望div.inline规则将以内联模式显示<div class="inline">,并且div.initial规则将使用<div class="initial">的原始显示值div来显示block

但是,当我探索这一点时,<div class="initial">显示内联。我错了吗?谁能详细说明一下?

最佳答案

initial value(非属性)表示属性的初始值,如CSS规范中所定义:“'initial'关键字表示被指定为属性的初始值的指定值。”因此,其含义取决于属性,而不取决于其他任何内容,例如不在浏览器上或在应用该属性的元素上。因此,这并不意味着浏览器默认。

例如,对于display属性,initial始终表示inline,因为那是该属性的指定初始值。在示例情况下,浏览器默认为block,因为该元素为div

因此,initial值的用途有限。由于误解,它的主要作用似乎是使人们感到困惑。 color属性是一个可能的用例,因为它的初始值与浏览器有关(众所周知,多数情况下为黑色,但不一定)。为此,initial表示浏览器默认设置,因为这是属性的定义方式。font-family的用法与此类似:通过声明font-family: initial,您将获得浏览器的默认字体(可能取决于浏览器设置)。

由于缺乏对IE(甚至是IE 10)的支持,其用途进一步受到限制。

关于html - CSS中 'initial'值的用途是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18534561/

10-13 00:39