分辨率与字体显示的关系
屏幕分辨率直接影响像素密度(PPI),不同设备上相同像素值的字体可能呈现不同物理大小。
body { font-size: 16px }
html { font-size: 100% }
h1 { font-size: 2rem }
p { font-size: 2vw }
.container { font-size: 50% }
核心适配技术
- rem基准适配
html { font-size: calc(16px + (24 16) ((100vw 320px) / (1920 320))); }
- 媒体查询断点控制
@media (max-width: 768px) { body { font-size: 14px; } } @media (min-width: 1200px) { body { font-size: 18px; } }
- vw单位动态适配
%ignore_pre_3%
特殊场景处理
场景 | 解决方案 |
---|---|
高DPI屏幕模糊 | -webkit-text-size-adjust: 100%; |
移动端适配 | meta name="viewport" content="width=device-width, initial-scale=1" |
多语言适配 | 使用chunit() 函数(Safari支持)font-size: chun(24pt); |
现代字体技术应用
- 可变字体(Variable Fonts)
@font-face { font-family: 'Noto Sans'; src: url('NotoSans-VF.woff2') format('woff2'); font-weight: 300 800; / 动态粗细 / font-stretch: 75% 125%; / 动态宽度 / }
- CSS像素比修正
const root = document.documentElement; root.style.fontSize = `${window.devicePixelRatio 16}px`;
相关问题与解答
Q1:为什么移动端开发要避免使用固定px单位?
A:移动设备屏幕尺寸差异大,固定px会导致字体在不同设备上物理尺寸差异显著,使用rem/em/vw等相对单位可以根据屏幕尺寸动态调整,保证可读性。
Q2:如何处理Retina屏幕的字体渲染问题?
A:方法包括:
- 使用
-webkit-text-size-adjust
防止iOS自动缩放 - 通过
devicePixelRatio
计算实际物理像素 - 优先使用矢量字体格式(如SVG/woff2)
- 开启CSS的
image-rendering
优化