多分辨率字体适配计算原理.md 2.2 KB

多分辨率适配

响应式字体大小设置

根据窗口的宽高变化,字体大小自动缩放。在最外层父标签设置基础字体大小,下面所有子标签的字体都使用 rem 为单位即可。

示例:

// ========== 字体大小配置 ==========
$font-size-scale: 1.0;  // 字体缩放系数,调整此值可改变字体大小(数值越大字体越大,越小字体越小)

/* 计算过程:
 * home-bg grid: Device占第一列20%
 * device-container: 20vw × 100vh
 * device-list: 20vw × 80vh (100% × 80% of device-container)
 * connect-item-container: 80% × 10% of device-list
 * 宽度:80% × 20vw = 16vw
 * 高度:10% × 80vh = 8vh
 * 
 * 调整字体大小:
 * - 修改文件顶部的 $font-size-scale 变量
 * - 增大字体:增加变量值(如改为 1.5 或 2.0)
 * - 减小字体:减小变量值(如改为 0.5 或 0.8)
 * - 数值越大,字体越大;数值越小,字体越小
 */
font-size: min(calc(16vw * 0.06 * $font-size-scale), calc(8vh * 0.12 * $font-size-scale));

参数说明:

  • 16vw:目标元素相对于窗口的宽度(通过层级百分比计算得出)
  • 8vh:目标元素相对于窗口的高度(通过层级百分比计算得出)
  • 0.06:基础宽度比例系数(元素宽度的6%)
  • 0.12:基础高度比例系数(元素高度的12%)
  • $font-size-scale:字体缩放系数变量,用于统一调整字体大小
  • min():取两个计算结果中的较小值,确保字体同时响应宽高变化

计算方法:

  1. 从最外层容器开始,逐层计算百分比
  2. 最终得到目标元素相对于窗口的 vw 和 vh 值
  3. 例如:home-bg grid(20%) → device-container(100%) → device-list(100% × 80%) → connect-item-container(80% × 10%)
  4. 结果:16vw × 8vh

调整方法:

  • 推荐方式:修改 $font-size-scale 变量来调整字体大小
    • 增大字体:增加变量值(如 1.52.0
    • 减小字体:减小变量值(如 0.50.8
    • 默认值 1.0 保持当前大小
  • 高级调整:如需单独调整宽度或高度比例,可修改 0.060.12 的值
  • 根据实际布局层级重新计算 vw 和 vh 值