移動(dòng)端初探

今天開始學(xué)移動(dòng)端布局啦美滋滋...(就想把一些想法記錄下來(lái)豈不是sixsixsix)

1、進(jìn)行移動(dòng)端頁(yè)面編程第一步是根據(jù)設(shè)計(jì)稿的尺寸確定初始尺寸(選用適用的屏幕尺寸),方便之后根據(jù)當(dāng)前屏幕尺寸進(jìn)行多屏幕適配。

<meta name="viewport" content="width=device-width, initial-scale=1.0">

2、根據(jù)上面代碼可以將頁(yè)面寬度和屏幕寬度保持一樣。當(dāng)然可以用minimum-scale和maximum-scale規(guī)定縮放。但是這里有個(gè)問(wèn)題是ta只適合像素比為1的屏幕,于是我就想要進(jìn)行多屏幕適配啦。

const pixelRatio = 1 / window.devicePixelRatio;

我通過(guò)window.devicePixelRatio獲取屏幕的像素比,那么再通過(guò)1除以ta豈不是就可以作為initial-scale的值啦。

document.write(`<meta name="viewport" content="width=device-width, initial-scale=${pixelRatio}, minimum-scale=${pixelRatio}, maximum-scale=${pixelRatio}">`) ;

那我將這兩段代碼寫進(jìn)script標(biāo)簽內(nèi)不就每次都可以適應(yīng)不同屏幕啦。(這里我使用了ES6的模版字符串而不是用‘+’)
3、接下來(lái)就涉及頁(yè)面上各種元素的尺寸問(wèn)題啦,用px肯定是不能適應(yīng)多種屏幕的,于是我就考慮用最近很火的rem啦。但是這又要考慮px和rem之間的轉(zhuǎn)換問(wèn)題,我的方法是在js代碼中設(shè)置html標(biāo)簽的fontSize,代碼先貼在下面。

const oHtml = document.getElementsByTagName('html')[0];
const pageWidth = oHtml.getBoundingClientRects().width;
oHtml.style.fontSize = pageWidth / 6.4 + 'px';

這里我獲取了html的寬度后除以6.4是因?yàn)槲夷J(rèn)的設(shè)計(jì)稿寬度為640像素(iphone5屏幕),這樣我除以6.4就可以設(shè)置成iphone5頁(yè)面下的字體為100px,這樣100px的寬度正好可以設(shè)置成1rem(注意這里最好不要讓字體大小小于12px,谷歌瀏覽器有12px的字體限制)。

/*Less*/
@rem: 100rem;
width: 78/@rem;
height: 74/@rem;

當(dāng)然也可以用less或sass,這樣就不用手動(dòng)用計(jì)算器計(jì)算了。(實(shí)時(shí)less轉(zhuǎn)css我用的是koala)。
4、圖片或背景圖的尺寸最好也做一下適配,不然不同的屏幕圖片大小一樣很難看的哇。

以上就是我第一次接觸移動(dòng)端布局的想法或者說(shuō)踩的坑啦,加油加油。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容