移动端响应式页面
原理
- 给根元素大小设置随着视口变化而变化的 vw 单位,这样就可以实现动态改变其大小。
- 限制根元素字体大小的最大最小值,配合 body 加上最大宽度和最小宽度
scss
// rem 单位换算:定为 75px 只是方便运算,750px-75px、640-64px、1080px-108px,如此类推
$vw_fontsize: 75; // iPhone 6尺寸的根元素大小基准值
@function rem($px) {
@return ($px / $vw_fontsize) * 1rem;
}
// 根元素大小使用 vw 单位
$vw_design: 750;
html {
// 定义的 font-size 除以屏幕宽度 iphone6 屏幕宽度为 375
font-size: ($vw_fontsize / ($vw_design / 2)) * 100vw; //20vw
// 同时,通过Media Queries 限制根元素最大最小值
@media screen and (max-width: 320px) {
// 320 * (20vw / 100vw)
font-size: 64px;
}
@media screen and (min-width: 540px) {
// 540 * (20vw / 100vw)
font-size: 108px;
}
}
// body 也增加最大最小宽度限制,避免默认100%宽度的 block 元素跟随 body 而过大过小
body {
max-width: 540px;
min-width: 320px;
}