【问题标题】:Why are my em margins not computing correct?为什么我的 em 边距计算不正确?
【发布时间】:2018-05-06 03:42:14
【问题描述】:

我对 em 单位有一些问题。

我的基本 em 单位是 16px

body {
    font-size:16px;
}

我尝试为我的 h4 元素提供 30px 的 margin-top,所以 30px 等于 1.87em,

h4 {
    font-size:1.875em;
    line-height: initial;               
    margin-top: 1.87em;
}

但是当我从网络检查器计算部分查看时:

margin-top:56.1px;

是计算出来的。

当我使用px 而不是em 时,比如margin-top:30px;,一切正常。

为什么会这样?

【问题讨论】:

  • h4 上的em 等于h4 的字体大小,而不是基本字体大小。你的意思可能是rem
  • 不,我的意思是 em,我只是现在没有,h4 上的 em 等于 h4 的字体大小
  • 它们以基本字体工作。我认为您的基本 h4 字体大小更高。
  • 我给 body 提供了基于 font-size 的字体,并认为一切都在此基础上进行计算。
  • @tamilselvan 是的,OP的数据清楚地显示h4的字体大小为30px。

标签: css pixel font-size


【解决方案1】:

恕我直言,您不应该将 em 计算为像素,但我知道它可以帮助您了解自己在做什么。如此主题......

你正在为你的身体定义一个基本尺寸16px

您为 h4 定义了一个字体大小,1.875em,这意味着:1.875 x 16 = 30px
这些 30px 现在是您的 h4 的基本尺寸

意思是,你在 h4 上定义的 margin-top 实际上是1.87 x 30 = 56.1px

因此,如果您想要“30px 边距”,请在您的 h4 上使用 margin-top: 1em

希望它有意义....


正如李斯特先生已经评论的那样,作为替代方案,您可以使用 rem 而不是 em

【讨论】:

  • 我明白,如果给元素字体大小与基本字体大小不同,我的 1em 值会改变这个元素。 ,如果我给我的 h4 元素 font-size 基本 font-size 像 16px(1em) 一切都很好。
  • 没错。使用em 会产生不同的心态:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-26
  • 2013-12-12
  • 2019-11-01
  • 1970-01-01
  • 2020-07-09
  • 2019-05-02
相关资源
最近更新 更多