【问题标题】:Isn't it okay to define relative font-sizes for child elements when the parent element uses Pixels (px)?当父元素使用像素(px)时,是否可以为子元素定义相对字体大小?
【发布时间】:2012-01-22 13:44:20
【问题描述】:

1) 我今天遇到了THIS ARTICLE,它说:

使用 em 值最流行的方法是设置 正文字体大小为 62.5%。因为默认浏览器字体大小 是 16 像素,这使它成为 10 像素(没有硬设置为 10 像素,这 不会级联)。

我刚才引用的(上面)基本上意味着,我不能直接将正文的字体大小设置为 10px,然后基于此定义 em 或 % 中其他元素的字体大小。是不是这个意思,还是听错了?

例如,我有body {font-size: 10px;}。现在我设置p {font-size: 1.4em;}。不是说p的font-size其实是14px吗?这不是级联吗? (或者这会导致我在其他设备上出现问题?-- 手机、平板电脑等)


2) 对于任何给定的元素,将其 font-size 定义为 1.8em 或 180% 没有任何区别,对吧?我的意思是,对于一个元素(我们正在定义其大小),em 本质上是% 的十进制形式,不是吗?


编辑:3) 'em' 通常被称为非常适合移动设备的尺寸单位。怎么样 %?考虑到第二季度,它是否一样好?

【问题讨论】:

  • 嗯,它可能是“最流行的方法”,但这并不意味着你不能做不那么流行的事情。
  • 嗯,你试过了吗?成功了吗?
  • @BoltClock 我不在乎它是否流行。该方法实际上很有意义,它使事情变得更容易。但我想要更多的控制,直接使用 10px 代替。我讨厌任何“陷阱”!在这个过程中,这就是我在这里问它的原因。
  • @ŠimeVidas:我做到了,而且成功了。但我想知道是否有任何“陷阱!”我会想念的。

标签: css


【解决方案1】:

1) 文章说以像素为单位的字体大小“不会级联”是错误的(这反映了对级联是什么的误解)。如果您愿意,可以使用em% 作为内部元素的字体大小。您将为它们设置以像素为单位的字体大小,只是间接的。您获得的灵活性是,如果您稍后更改以像素为单位设置的基本字体大小,事情会变得更容易。另一方面,em% 设置可能意味着舍入,在某些情况下不同的浏览器会以不同的方式处理。

如果您设置body {font-size: 10px;} p {font-size: 1.4em;},那么(除非其他样式表干扰),pfont-size 将为 14px。但这与级联无关。这是单位和font-size 的基本定义的结果。

2) 对于font-size1.8em180% 定义相同。由于浏览器存在错误,曾经有理由偏爱其中一个,但这些考虑已经失去了意义。

3) 是的,使用% 一样好。

【讨论】:

  • 最后一个问题。您的回答中的第 (2) 点 - There used to be reasons to favor one or the other, due to browser bugs with the other, but these considerations have lost significance. 可以肯定地说 IE7+ 没有这些错误吗?
  • @Kr1s,是的,我不希望在这些天仍在使用的浏览器中看到这样的错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-16
  • 2019-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多