手记

vm + calc && rem 自适应布局

html {
    font-size: 16px;
}

/* 以 iPhone6 的 375px 尺寸作为 16px 基准 */
@media screen and (min-width: 375px) {
    html {
        font-size: calc(100% + 2 * (100vw - 375px) / 39);
        font-size: calc(16px + 2 * (100vw - 375px) / 39);
    }
}

/* 414px ~ 1000px 每 100 像素宽字体增加 1px */
/* font-size 变化范围: 18px ~ 22px */
@media screen and (min-width: 414px) {
    html {
        font-size: calc(112.5% + 4 * (100vw - 414px) / 586);
        font-size: calc(18px + 4 * (100vw - 414px) / 586);
    }
}

/* 600px ~ 1000px 每100像素宽字体增加 1px */
/* font-size 变化范围: 20px ~ 24px */
@media screen and (min-width: 600px) {
    html {
        font-size: calc(125% + 4 * (100vw - 600px) / 400);
        font-size: calc(20px + 4 * (100vw - 600px) / 400);
    }
}

/* 1000px 往后是每 100 像素增加 0.5px */
@media screen and (min-width: 1000px) {
    html {
        font-size: calc(137.5% + 6 * (100vw - 1000px) / 1000);
        font-size: calc(22px + 6 * (100vw - 1000px) / 1000);
    }
}

代码参考

张鑫旭老师 基于vw等viewport视区单位配合rem响应式排版和布局

1人推荐
随时随地看视频
慕课网APP