我认为该initial值将还原最初呈现的样式(由浏览器的内部用户代理样式表应用)。
initial
例:
div.inline { display: inline; } div.initial { display: initial; }
我希望div.inline规则将以<div class="inline">串联模式显示,并且div.initial规则将<div class="initial">使用div的原始显示值显示block。
div.inline
<div class="inline">
div.initial
<div class="initial">
div
block
但是,当我探索这一点时,<div class="initial">会显示内联。我错了吗?谁能详细说明一下?
initial值(未属性)表示属性的初始值,如在CSS规范定义:“在‘初始’关键字表示被指定为属性的初始值的指定值”。因此,其含义取决于属性,但不取决于其他任何内容,例如,不取决于浏览器或该属性所应用于的元素。所以它并 不能 意味着浏览器的默认。
例如,对于display属性,initial 始终 表示inline,因为这是属性的指定初始值。在示例情况下, 浏览器默认 为block,因为元素为div。
display
inline
因此,该initial值的用途有限。由于误解,它的主要作用似乎是使人们感到困惑。该color属性可能的用例是,因为它的初始值与浏览器有关(我们知道,但不一定是黑色)。为此,它initial表示浏览器默认,因为这是定义属性的方式。类似的用例是font- family:通过声明font-family: initial,您将获得浏览器的默认字体(可能取决于浏览器设置)。
color
font- family
font-family: initial
由于缺乏对IE(甚至是IE 10)的支持,其用途进一步受到限制。