标签:多少 手机 res 直接 element 段落 第一个 手机适配 client
在html篇里提到设置视口宽度和设备宽度,固定的meta配置就是写死的,死记硬背
应该清楚的是手机端的适配应该克服的难题就是宽度根据手机屏幕的大小变化,而高度却没有办法跟随比例变化,也就是宽高比
,比如在手机上要一行上排列三个div放正方形的三个div,要怎么做,三个div浮动排列后各自设置width为33.3%,那高度呢,在pc端可以直接100*100,但是手机不行,不等比排列太难看了
实现手机宽高比,就是手机端适配的终极目标
现在最常见的宽高比方案有两个
在css里有px和em还有rem
rem的关键点就是如何去给html标签设置跟设配宽度一样的字体大小,而现实是只能用js
去实现,而且为了更好的计算,不能计算为1rem去等于设备宽度,这样如果要10px就是零点零几的rem,正确的做法是让html等于10rem,15rem,20rem,我一般是用15rem,就是375/15=25,也就是1rem=25px,16px的正常字体大小就是16/25约等于0.65rem,rem的单位是可以代替所有的px的存在的,比如padding,margin,border,img-width等等都是可以用rem的,这样不管在怎么样大小的手机上大小,任何一个元素的宽高比都是一样的,也就是等比缩放
js代码如下
window.onload = function(){
/* 第一个参数是你想让 1rem 等于多少像素,第二个参数是设计稿的宽度 */
getRem(50,750)
};
window.onresize = function(){
getRem(50,750)
};
function getRem(prem,pwidth){
var oWidth = document.body.clientWidth || document.documentElement.clientWidth;
document.documentElement.style.fontSize = prem/pwidth*oWidth + "px";
}
如果看不懂js写了什么,也不用管,固定写法,写进去就可以用了
上面讲了css的3个计量单位,而css3出现了一个新的计量单位vw , vh
,这两个是相对于手机设备宽度的固定值,相对的固定值怎么理解呢,就是不管在任何设备,100vw就是等屏幕一样宽,100vh就是跟屏幕一样高,所以宽高都是33.3vw的div就是一个永远固定的正方形
标签:多少 手机 res 直接 element 段落 第一个 手机适配 client
原文地址:https://www.cnblogs.com/pengdt/p/12037510.html