响应式开发中使用 rem 的注意事项


REM单位

CSS 中的 rem 单位是相对于浏览器根字体的相对大小单位,这里的根字体大小可以通过 :root 选择器进行设置:

/* 设置根字体大小为 16px */
:root {
    font-size: 16px;
}

当根字体大小为 16px 时,1rem 就等于 16px2rem 就等于 32px,依此类推。

浏览器影响根字体

如果你不显式设置根字体(就是通过 :root 方法设置),那么网页的根字体大小是由浏览器决定的,这就导致在某些情况下会导致一些糟糕的问题,比如网页结构崩了。

诸如 Edge 浏览器,可以在设置中找到设置网页字体大小的设置,当大小为 small 的时候,网页的根字体大小会被默认设置为 12px,这就很难受了。

因此在使用 rem 这类相对单位时,一定要确保根字体大小已经被设置,要养成好的习惯 💗。

SPA 如何设置

如果你在使用 Vue 或者 React 开发 SPA(单页网页应用),那你可以直接在 index.html 中插入一个 <style></style> 标签,然后再设置根字体大小,以保证设置被全局应用。

<style>
    :root {
        font-size: 16px;
    }
</style>

总结

一句话:养成设置根字体大小的习惯。