在“规则”选项卡下,我可以看到直接分配的样式,继承的样式或来自“用户代理样式表”的样式。如您所见line-height
,这里没有设置。但是,当我切换到“计算”标签时,我看到的line-height
是47px。为什么会这样,它从哪里来?它不应该位于“用户代理样式表”中“规则”选项卡下吗?我不太了解所有这些规则的分类方式,我认为“用户代理样式表”显示特定元素的所有默认样式。但是,事实并非如此。在此先感谢您为我解决此问题。
为什么行高未显示在“规则”选项卡下?
“line-height
规则”标签中未显示,因为它不是标签的默认用户代理样式表的一部分h1
。Safari的默认用户代理样式表可在此处找到。
h1 {
display: block;
font-size: 2em;
-webkit-margin-before: 0.67__qem;
-webkit-margin-after: 0.67em;
-webkit-margin-start: 0;
-webkit-margin-end: 0;
font-weight: bold
}
您在h1
上面定义下看到的所有属性都显示在“规则”选项卡中,因为它们是用户代理默认样式表的一部分。但是,line-height
它不是其中的一部分,因此不会在“规则”选项卡中显示。
如果它不属于UA样式表,为什么会在“计算”选项卡下显示它?
由于未指定line-height
的值,因此使用了规范中指定的默认值(即normal
)。在W3C规范说的情况如下:
值为'normal'将元素的字体的'line-height'设置为合理的值。建议UA将“正常”值设置为1.0到1.2范围内的数字。
如您所见,规格中有两点很重要:
line-height
设置为元素font的合理值。因此,所使用的字体在确定中起着关键作用line-height
。因此,每个UA都会根据line-height
其认为适当的值进行计算。由于UA实际上是在计算值,而不是从默认样式表中提取值,因此该值显示在“计算”选项卡下。
为什么对于32px的基本字体大小显示47px的值?
如前所述,没有固定的计算逻辑line-height
。对于默认字体,当我设置font-size
为2em
(32px
)且line-height
显式设置为正常时,我得到的值是37px
(大致等于line-height: 1.175
)。
但是,当我使用您使用过的Indie Flower(Google字体)时body
,的计算值line-height
等于47px
。您可以在下面的代码段中看到这一点,我在其中添加了三个h1
标记-一个没有line-height
设置,一个带有line-height: normal
,另一个带有line-height: 47px
。这三个高度都相同。因此,似乎UA确定与其他字体不同,此字体需要这么大的因素。
h1 {
display: inline-block;
font-size: 2em;
-webkit-margin-before: 0.67em;
-webkit-margin-after: 0.67em;
-webkit-margin-start: 0;
-webkit-margin-end: 0;
font-weight: bold;
background: red;
}
h1.withnumber {
line-height: 47px;
}
h1.normal {
line-height: normal;
}
body {
font-family: 'Indie Flower', cursive;
}
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Indie+Flower" />
<h1>Abcd</h1>
<h1 class='normal'>Abcd</h1>
<h1 class='withnumber'>Abcd</h1>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句