我注意到在使用rem单位时,在Chrome和Firefox中它们的渲染存在一些细微的问题。
使用以下CSS:
html {
font-size: 62.5%;
}
.rem-test {
width: 50%;
height: 20rem;
background: red;
}
在渲染时,结果略有不同。Firefox 显示的框比 Chrome 中看起来短:
有什么方法可以阻止这种情况发生吗?
我注意到在使用rem单位时,在Chrome和Firefox中它们的渲染存在一些细微的问题。
使用以下CSS:
html {
font-size: 62.5%;
}
.rem-test {
width: 50%;
height: 20rem;
background: red;
}
在渲染时,结果略有不同。Firefox 显示的框比 Chrome 中看起来短:
有什么方法可以阻止这种情况发生吗?
alert(document.querySelector('.rem-test').scrollHeight);
我也遇到了同样的问题。在我的情况下,这与Windows 10放大字体和项目大小有关。
Firefox考虑到这一点,在设置为125%时会将所有内容放大1.25倍。而Chrome则不会。
因此,在Firefox中的14px变为:在显示器上为17.5px,在Chrome中仍为14px。
由于rem是使用html的字体大小计算的(即如果body的字体大小为5px,则20rem将为100px),因此您需要在各个浏览器中具有统一的字体大小。
尝试在CodePen中修改字体大小。
添加-
body, html {
font-size:15px;
}
现在一切应该都能够正常工作了。
font-size: 62.5%;
是一个相对长度(字体高度,间接影响文本宽度),相对于父容器的相同属性。如果没有父容器,将会使用一些编译内置的默认值。(参见上面@seimen的回答。)
width: 50%;
是一个相对长度(容器宽度),相对于父容器的相同属性,它不是以rem或字体高度的百分比表示,因此不必符合任何特定的文本量或你的期望。