【问题标题】:Decimal REM based font size not working as expected基于十进制 REM 的字体大小未按预期工作
【发布时间】:2017-01-11 06:18:58
【问题描述】:

好的,看看我能不能解释一下。

如果我将 body font-size 设置为 16px,下面的代码可以正常工作,但如果我将 body font-size 设置为 100%,它就不起作用。 (即使 100% 等于 16px)

元素“a”的字体大小应与正文相同,因此很可能是 16 像素。 元素“b”的字体大小应为 10%,元素“c”的字体大小应为 30%。

问题仅在于 Chrome 和 Vivaldi,元素“b”和“c”似乎不想通过“REM”低于 6px,而 Firefox 和 IE 很乐意将它们降低到 1 或 2 像素它的工作原理,他们俩!最终大小相同,前者为 6px。

我为此使用了 Chrome 插件 CSSViewer...和我的眼睛:P

这是一个错误吗?还是我做错了什么?我真的很希望能够让它在 Chrome 和 Vivaldi 中工作......

示例如下:

html {
  font-size: 100%;
}
#a {
  font-size: 1rem;
}
#b {
  font-size: 0.1rem;
}
#c {
  font-size: 0.3rem;
}
<div id="a">
  Hello world!
</div>
<div id="b">
  Hello world!
</div>
<div id="c">
  Hello world!
</div>

【问题讨论】:

    标签: css


    【解决方案1】:

    转到您的浏览器设置。在 Firefox 的情况下,在标准字体大小设置旁边,您会找到一个“扩展设置”按钮。当你点击它时,你会看到(除其他外)一个“最小字体大小”——在 Firefox 中为 10 像素。

    所以无论你做什么,只要不改变那个设置,任何计算出来小于10px的文字都会以10px显示...

    我想其他浏览器会有类似的设置。

    【讨论】:

    • 哇,我不知道。好吧,我的 Firefox 设置为最低“无”,这样就解释了它的工作原理。试图将其更改为 10,它证实了您所说的。不过,如果我将 html 标签字体大小设置为基于 px 的值而不是百分比,它会起作用。
    • 你可以使用 rem 来获得更大的字体,但你不能指望用户会在 Firefox 上看到小于 10px 的字体,在 Chrome 上看到小于 6 px 的字体或任何默认设置,因为大多数用户永远不会改变它。
    • 我会接受你的答案,因为它非常接近,但如果我在 html 标签上设置字体大小(以像素为单位,而不是百分比),我仍然可以让它工作。我没有尝试将实际文本设置为 1 或 2 像素,而是尝试将几个 DIV 标签边框的基于 REM 的宽度。无论如何,谢谢@Johannes!
    • 看看这个codepen:codepen.io/anon/pen/NdxwJw这正是你的“不工作”代码——唯一的区别是我将html字体大小设置为500%。你会看到它有效。因此,百分比和 rem 在您的示例中都有效 - 只是浏览器的最小字体大小设置阻止了它的较小尺寸。
    • 同意。问题是我无法将其进一步降低到 6px。似乎我允许将 DIV 字体大小设置为 4px,然后将子元素边框设置为 1em,所以一切都很好....我希望 :)
    猜你喜欢
    • 1970-01-01
    • 2020-11-29
    • 1970-01-01
    • 2016-02-19
    • 2021-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多