移动端适配

<html>
<head>
<title></title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no" />
<style>
body{
margin: 0;
padding: 0;
}
/方案一/
/.box{
width: 2.666rem;
height: 2.666rem;
background: red;
}
/
/方案二/
/.box{
width: 2rem;
height: 2rem;
background: red;
}
/
/我们的一倍稿/
.box{
width: 1rem;
height: 1rem;
background: red;
}
</style>
</head>
<body>

<div class="box"></div>

<script>
/* 方案一
*   前提 css尺寸相对于布局视口
*   1. 设置  设备布局视口宽度为设备像素宽度
*   2. 解决不同屏幕宽度下,比例相同,但是box尺寸不同, 由于css无法计算, 所以用相对单位实现不同屏幕宽度下 box的宽度不用
*   3. 阿里的做法: 屏幕等分为10份, 每一份为 1rem  
*/
// 方案一

// var scale = 1 / window.devicePixelRatio;
// // 设备布局视口宽度为设备像素宽度
// document.querySelector('meta[name="viewport"]').setAttribute('content','width=device-width,initial-scale=' + scale + ', maximum-scale=' + scale + ', minimum-scale=' + scale + ', user-scalable=no');
// //适配其他屏幕
// document.documentElement.style.fontSize = document.documentElement.clientWidth / 10 + 'px';


/* 方案二
*   前提: css尺寸相对于布局视口
*   1. 认为设备像素为 7.5rem , 那么在 750px 下 font-size: 100px;  375px 下 50px; 
*
*
*/
// document.querySelector('meta[name="viewport"]').setAttribute('content','width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no');
// document.documentElement.style.fontSize = document.documentElement.clientWidth / 7.5 + 'px';

// 我们的设计稿 是一倍图 -》所以需要*2之后再计算  按照375px -> 

// 假如在一个375的设计稿上 有一个 宽高为100px的红块 
document.querySelector('meta[name="viewport"]').setAttribute('content','width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no');
document.documentElement.style.fontSize = document.documentElement.clientWidth / 3.75 + 'px';

</script>

</body>
</html>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容