一、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 用處: