前端适配

358 阅读1分钟

元素大小随屏幕宽度改变平稳变化

rem

直接上代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    /* 1920 分成100份 */
    html{
   font-size:19.20px;  /*默认以设计稿为基准*/
}

@media only screen and (max-width: 1366px) {
   html{
      font-size:13.66px;
   }
}
@media screen and (max-width: 1200px) {
   
    html{
        font-size: 12px;
    }
}
/* 大屏幕 */
@media only scree and (min-width:1200px){

}

/* 中等屏幕 */
@media only screen and (min-width:992px) and (max-width:1199px) {
   
}

/* 小屏幕 */
@media only screen and (min-width:768px) and (max-width:991px) {
 
}

/* 手机端显示 */
@media only screen and (max-width:767px) {
    
}


</style>
<body>
    <h3>Array</h3>
    <div style="width: 10rem;height: 5rem;border: 1px solid red;">

    </div>
    <span style="font-size: 2rem;">test</span>
</body>
</html>
<script type="text/javascript">
    // 获取分辨率
    // window.screen.width window.screen.height
    var os = function () {
        var ua = navigator.userAgent,
        isWindowsPhone = /(?:Windows Phone)/.test(ua),
        isSymbian = /(?:SymbianOS)/.test(ua) || isWindowsPhone,
        isAndroid = /(?:Android)/.test(ua),
        isFireFox = /(?:Firefox)/.test(ua),
        isChrome = /(?:Chrome|CriOS)/.test(ua),
        isTablet = /(?:iPad|PlayBook)/.test(ua) || (isAndroid && !/(?:Mobile)/.test(ua)) || (isFireFox && /(?:Tablet)/.test(ua)),
        isPhone = /(?:iPhone)/.test(ua) && !isTablet,
        isPc = !isPhone && !isAndroid && !isSymbian;
        
        return {
               isTablet: isTablet,
               isPhone: isPhone,
               isAndroid: isAndroid,
               isPc: isPc
        };
    }();
 
    // pc时加载一套页面
    if(os.isPc){
    //    location.replace("http://"); 
        console.log(os)
        
    }
        
    // 移动端时加载另外一套页面 
    if (os.isAndroid || os.isPhone) { 
    //    location.replace('http://');
        console.log('移动端')
    } else if (os.isTablet) {
    //    location.replace('http://');
        console.log('移动端')
    }
 </script>

vw vh?

vm、vh是基于视口的布局方案,所以meta元素的视口必须声明

移动端前端适配方案

postcss

tailwindcss