如何让不同尺寸的屏幕能以正常比例呈现设计稿?
动态修改 html 标签 font-size,样式单位统一用 rem,数值为设计稿尺寸除以 base
var fn = function () {
var designWidth = 1920; // 设计稿尺寸
var base = 16; // 1rem 的占比,不要小于 12
var html = document.getElementsByTagName('html')[0];
var clientWidth = document.body.clientWidth || document.documentElement.clientWidth;
html.style.fontSize = (clientWidth / designWidth) * base + 'px';
};
document.addEventListener('DOMContentLoaded', function () {
fn();
});
window.onresize = function () {
fn();
};
(32/750)*100% = 4.27%
,换句话说这个标题的字号占屏幕宽度的占比是 4.27%,不管任何屏幕都是如此。4.27% 即 4.27vw。@baseScreenWidth: 320;
.px2vw(@name, @px) {
@{name}: (@px / @baseScreenWidth) * 100vw;
}
@function px2vw($px) {
@return $px * 100vw / 750;
}
// 以iphone7尺寸@2x 750像素宽的视觉稿为例
@function vw($px) {
@return ($px / 750) * 100vw;
}
// 假设一个div元素在视觉稿中,宽度为120px,字体大小为12px
div {
width: vw(120);
font-size: vw(12);
}