能否在同一CSS类中为不同字体族设置不同字号而无需创建多类?
解决同一CSS类下不同字体族的字号适配问题
可以通过CSS的font-size-adjust属性实现需求,无需创建额外CSS类。这个属性专门针对不同字体的视觉尺寸差异设计,通过基于字体的x高度(小写字母x的高度)调整字号,让同一类中的备选字体保持一致的视觉大小。
具体操作:
- 首先确定基准字体的aspect值(即字体x高度与字号的比例):比如
Urdu Typesetting的aspect值假设为0.5(可通过浏览器开发者工具或在线字体工具获取准确值)。 - 在
.lang-ur类中添加font-size-adjust属性,将基准字体的aspect值作为参数:
.lang-ur { font-family: 'Urdu Typesetting', 'Noto Nastaliq Urdu'; font-size-adjust: 0.5; /* 以Urdu Typesetting的aspect值为基准,自动调整备选字体字号 */ }
补充说明:
- 若不清楚字体的准确aspect值,可在0.4-0.7区间内测试调整,直到两种字体视觉大小一致。
font-size-adjust兼容Chrome、Firefox、Edge等主流现代浏览器,无需担心兼容性问题。
如果不想使用font-size-adjust,也可以通过JS检测字体是否加载完成,结合@supports规则手动指定字号,但这种方法流程更繁琐,不如前者高效。
内容的提问来源于stack exchange,提问作者ToysonGrape
相关产品推荐
相关产品推荐

