【问题标题】:What is calculated value for font-size字体大小的计算值是多少
【发布时间】:2020-01-27 20:45:22
【问题描述】:
<div class="selection">
  <span class="myspan">Selam</span>
</div>
.selection{
  width:200px;
  font-size:18px;
}
.myspan{

  font-size:220%;
  display:block;
  width: 50%;

}


我有上面的html和css。我的问题是:当执行 Css 解析时,字体大小(myspan)的“计算值”是 50% 还是 39.6px?

【问题讨论】:

标签: css css-parsing


【解决方案1】:

您的问题有点令人困惑,但我会按照您的要求尝试掩盖细节。

首先,我认为您的意思是“计算”值而不是“计算”值。您还在评论中询问“使用”值,为了全面了解我们还需要涵盖一些其他值,“指定”值、"Resolved" 值和“实际”值。

现在首先使用 font-size,我们有 .myspan 元素

  • 规定值 = 220%
  • 计算值 = 18px * 220% = 39.6px
  • 解析值 = 39.6px
    font-size 的解析值为计算值)
  • 使用值 = 39.6px
    (始终与font-size 的计算值相同)
  • 实际值 = 约 39-40px
    (CSS 像素将转换为设备像素。可能会根据可用字体和设备上最接近的可渲染数字进行一些其他近似)

对于width,工作方式略有不同

  • 规定值 = 50%
  • 计算值 = 50%
    (在计算值时像素长度未知,因为在这一步还没有发生布局)
  • 使用值 = 200px * 50% = 100px
    (布局完成,像素值确定)
  • 解析值 = 100px
    width 的解析值为使用值)
  • 实际值 = 约 100px
    (与 font-size 一样,CSS 像素将转换为设备像素,并使用设备上最接近的可渲染数字)

现在,导致混淆的原因是,当您在 JavaScript 中使用 getComputedStyle() 或检查浏览器开发人员工具中的“计算值”选项卡时,您不会获得元素的“计算”值 - 您会得到元素的 “已解决” 值。

对于getComputedStyle(),这只是出于向后兼容性原因而存在的历史异常。为什么开发者工具也会报告 Resolved 值,我不知道。

【讨论】:

    【解决方案2】:

    计算值将是父字体大小乘以您在元素上指定的百分比 (18px * 220%)。在这种情况下:39.6px。像这样使用百分比与在子元素上设置font-size: 2.2em 基本相同。

    宽度也将应用相同的计算,得到 100px。

    【讨论】:

    • 这种情况下使用的值是多少?计算值和使用值有什么不同
    • 我不认为我清楚地理解了这个问题,但是发生了什么:计算的值将是 39.6px,这将是浏览器用来呈现该样式的值。发生这种情况是因为百分比单位(如“em”)是一个相对值,并且将根据他们正在设置的属性的父定义值应用。
    猜你喜欢
    • 2011-03-30
    • 2014-12-06
    • 1970-01-01
    • 2013-08-28
    • 1970-01-01
    • 2013-12-24
    • 1970-01-01
    • 2012-09-04
    相关资源
    最近更新 更多