【问题标题】:Where to set base font?在哪里设置基本字体?
【发布时间】:2013-05-22 22:34:59
【问题描述】:

如果我在body 元素上设置font-size,那么这个大小也会是1em 吗?

换句话说,如果我这样做:

body {
    font-family: Arial;
    font-size: 16px;
}

我能确定我在任何地方使用 1em 都会等于 16px 吗?

如果上述方法不正确,我应该如何设置基本字体?

对不起,如果基本字体不是正确的术语。我不确定这种技术被称为什么。我相信它类似于重置样式表,它会覆盖浏览器的默认样式。

【问题讨论】:

  • 您可以使用任何 CSS 重置样式表。搜索市长重置样式表
  • 你的意思是meyerweb.com/eric/tools/css/reset?字体大小为 100%。如果我将其更改为 16px,那将是我的 1em?这需要在单独的样式表中吗?
  • @4thSpace:请参阅this answer 以了解详情。

标签: css em


【解决方案1】:

你想要达到的目标可以用 rem 单位来完成。

一个 em 单位是“等于使用它的元素的‘font-size’属性的计算值。”在您的情况下,body 元素上的 1em 将是 16px。但是,如果您更改任何元素上的font-size,则该元素上的1em 将等于该元素的font-size。如果在font-size 上使用ems,它是相对于父元素的font-size。因此,如果pdiv 的孩子,并且div 上的font-size12px,那么p 上的font-size: 1em 将是12px.

另一方面,1rem 始终等于根元素的字体大小的计算值。在 HTML 中,这是 html 元素。因此大小总是一致的。见http://www.w3.org/TR/css3-values/#rem-unit

【讨论】:

  • 这样的话,这里的示例代码就是我应该使用的css3clickchart.com/#rem-units?这将在我引用 rem 的任何地方工作/覆盖?通过覆盖,我的意思是它总是会恢复到我在 html 定义中指定的字体大小?
  • 假设您执行以下操作: html { font-size: 10px; } 那么任何时候你使用 1rem 它将等于 10px。最大的问题是它在 IE8 及以下版本中不起作用。
  • rem 单位是 root 元素的字体大小,在 HTML 文档中始终是 html 元素(而不是 body 元素)。
  • @JukkaK.Korpela 我在原始回复和评论中都提到了这一点。
【解决方案2】:

定义 font-size 属性时,em 等于应用到相关元素父级的字体大小。如果你没有在页面的任何地方设置字体大小,那么它是浏览器默认的,大概是 16px。

所以,默认情况下1em = 16px2em = 32px。如果你在 body 元素上设置了 20px 的字体大小,那么 1em = 20px2em = 40px

请注意,值 2 本质上是当前 em 大小的乘数。

Reference Link

【讨论】:

  • 只是为了澄清一些正在发布的答案,您的答案与 Rapture 不一致?他说你不能改变字体大小,因为它在浏览器样式表中。
  • 我附上了一个参考链接,你可以验证一下。谢谢
  • 无法以像素为单位定义字体大小,因为用户无法从浏览器更改字体大小。 (例如,视力有限的用户可能希望将字体大小设置为远大于网页设计师选择的大小。)因此,如果您希望创建包容性设计,请避免使用像素作为字体大小。
  • 无法访问是什么意思?我们可以以 px 为单位设置字体大小,但用户可以覆盖它。这并不意味着它总是无法访问。在您提供的链接中,为什么他们将 font-size 设置为 62.5% 而不是 10px?
  • 当您需要像素精度时,以像素值 (px) 为单位设置字体大小是一个不错的选择。 px 值是静态的。这是一种独立于操作系统和跨浏览器的方式,它实际上告诉浏览器以您指定的高度像素数呈现字母。不同浏览器的结果可能略有不同,因为它们可能使用不同的算法来实现类似的效果。
【解决方案3】:

如果您为一个元素设置了font-size,那么(假设您的 CSS 规则将被应用)em 单元具有该值该元素

你不能改变 em 在 CSS 中的含义:它表示使用它的元素的字体大小(除非在 font-size 声明或 font 简写中使用,其中它表示父元素的字体大小)。

em 设置为固定值会破坏该单元的目的:意味着会根据上下文和设置而变化。如果您想将em 设置为16px,则只需使用px 单位而不是em 单位。如果您认为数字太大,您可以使用pc (pica) 单位:CSS3 Units,在浏览器实践中,1pc = 12pt = 16px

【讨论】:

    猜你喜欢
    • 2021-05-27
    • 2014-03-10
    • 1970-01-01
    • 2014-06-24
    • 2011-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-02
    相关资源
    最近更新 更多