使用getPropertyValue获取到的字体字号最小只能获取到10px,这是为什么?

2023-06-30 375 0

<style>
    div{
        font-size: 5.21px;
    }
</style>
<body>
    <div>
        111
    </div>
    <script>
        let div = document.querySelector('div');
        let style = window.getComputedStyle(div);
        console.log(style.getPropertyValue('font-size')) //10px
    </script>
</body>

浏览器有最小字号限制。

以 Edge for Windows 浏览器为例,其设置在“外观 / 自定义字体”下:

image.png

通常来说用户也不会去改这个玩意儿,默认是多少就是多少,所以一般网页设计中需要 10px/12px 以下的字号,需要通过 transform 等方式间接实现。

大部分浏览器有最小字号,为了阅读方便,如果你想要更小的字体,可以用 SVG 或者 Canvas 来绘制文字。

在OP你的浏览器端中有效的 font-size 值最小应该就是 10px 了。在我这边获取到的是 12px。这个得看每客户端的浏览器配置项了
所以当样式中设置 font-size: 5.21px 时我们获取到的并不是 5.21px。但是如果设置为 0px 应该会返回 0

比如说我设置 Chrome最小字号9(可以在 chrome://settings/fonts 中修改),那么输出的 font-size 也会是 9

浏览器设置

字号输出

回答

相关文章

nuxt2部署静态化和ssr的时候访问首页先报404再出现首页为什么?
`clip-path` 如何绘制圆角平行四边形呢?
多线程wait方法报错?
VUE 绑定的方法如何直接使用外部函数?
vue2固定定位该怎么做?
谁有redis实现信号量的代码,希望借鉴一下?