移動端自適應

一、js動態設置html的字體大小html

var clientWidth = 0;
if(document.documentElement.clientWidth >= 600){
    clientWidth = 600;
}else{
    clientWidth = document.documentElement.clientWidth;
}
document.documentElement.style.fontSize = 50 * clientWidth/375 + 'px';

window.onresize = function(){
    if(document.documentElement.clientWidth >= 600){
        clientWidth = 600;
    }else{
        clientWidth = document.documentElement.clientWidth;
    }
    document.documentElement.style.fontSize = 50 * clientWidth/375 + 'px';
}

設計稿寬度750px,設備寬度350px,此時HTML 的font-size:50px,及1rem=50px; 假設一元素在設計稿上寬度爲750px,750/100=7.5rem(7.5*50=375px)。瀏覽器

計算方法:設計稿的尺寸 / 100  =  XXX rem;工具

二、設置html的font-size: 13.33vw佈局

首先要先說明:移動端的設計稿通常是width:750px,height:auto(這裏指的是不肯定),100vw = 100%,這個也沒有問題吧;那麼,設計稿拿過來,咱們能夠得出:750px = 100vw,這個也沒有問題吧,那麼1px等於多少vw呢? 是否是 1px = 100 / 750 vw = 0.3333vw;那麼100px = 多少vw呢,這個應該知道了吧。100px = 13.33vw;字體

思路過程:spa

mobile.width = 750px  => 750px = 100% =100vw => 750px = 100vw => 1px = 0.1333vw => 100px = 13.33vw => 1rem =100px;scala

即:咱們把html:{font-size: 13.33vw} // 也就是以100px位基準;1rem = 100px;設計

計算方法:設計稿的尺寸 / 100 /2  =  XXX rem;

code

三、設置html的font-size並縮放頁面htm

var html = document.getElementsByTagName('html')[0];

    var width = html.getBoundingClientRect().width;

    html.style.fontSize = width / 16 + 'px';

    var PixelRaio = 1 / window.devicePixelRatio;

    document.write('<meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=' + PixelRaio + ',minimum-scale=' + PixelRaio + ',maximum-scale=' + PixelRaio + '"/>')

 計算方法:設計稿的尺寸 / 46.875  =  XXX rem;

四、佈局單位使用vw和vh

vw:是相對於視窗寬度的單位,100vw爲瀏覽器視窗的總寬度,也即相對於html的width:100%。

vh:是相對於視窗高度的單位,100vh爲瀏覽器視窗的總高度,也即相對於html的height:100%。

vmin:當前 vw 和 vh 中較小的一個值

vmax:當前 vw 和 vh 中較大的一個值

 注意:此處的寬高指的是可視區域,即window.innerWidth/window.innerHeight大小,不包含任務欄、標題欄以及底部工具欄的瀏覽器區域大小。

vmin、vmax 用處:

作移動頁面開發時,若是使用 vw、wh 設置字體大小(好比 5vw),在豎屏和橫屏狀態下顯示的字體大小是不同的。
因爲 vmin 和 vmax 是當前較小的 vw 和 vh 和當前較大的 vw 和 vh。這裏就能夠用到 vmin 和 vmax。使得文字大小在橫豎屏下保持一致。
相關文章
相關標籤/搜索