前言
最近整理了一下以前學習前端的筆記,發現自己對移動 web 端屏幕適配(rem)這一塊并沒有真正理解,只是會用。
接下來,把自己的一些對移動 web 端屏幕適配(rem)的思考記錄下來。
rem 介紹
rem 表示根元素(<html>)的 font-size 的大小。即如果根元素的 font-size 大小為 14px,則 1rem = 14px
rem 適配移動 web 端
適配效果
在不同尺寸的屏幕下,同一個元素的大小看起來不是一樣大的,但是它們所占屏幕寬度的比例是一樣的。
代碼
// 在 html 文件的 head 標簽中 <script type="text/javascript"> (function(){ var html = document.documentElement; // 獲取屏幕寬度(px) var hWidth = html.getBoundingClientRect().width; // 設置 html 標簽的 font-size 大小為 hWidth/15 html.style.fontSize = hWidth/15 + 'px'; })() </script>
// 在 less 中 /* 定義變量@r:750/15 */ @r:50rem; p { width: 100/@r; height: 200/@r; }
javascript 代碼
首先,我們將屏幕的 1/15 大?。╬x)復制給 html 標簽的 font-size 屬性。此時,在任何尺寸的屏幕上,屏幕尺寸(px)的 1/15 px 都等于 1rem 的大小。即:在任何尺寸的屏幕上,只要給元素設置值相同的 rem,則在所有尺寸的屏幕上該元素所占屏幕寬度的比例是一樣的,所占比例一樣,就適配了所有尺寸的屏幕。
less 代碼
現在只需要將設計稿中元素的 px 單位轉換為 rem 單位。
所以,這個時候,我們可以把設計稿也當成一個具有一定尺寸的手機屏幕。
在我這個例子中,設計稿的寬度為 750px。
所以,750/15 = 50px,即在設計稿這樣尺寸的手機屏幕中,1rem = 50px。
然后,在 less 代碼中,我們定義一個變量 @r。
量得 p 的寬度為 100px,因為在設計稿這樣尺寸的屏幕中,1rem = 50px,所以該 p 的 rem 的值為:100/50 rem,即 100/@r。
量得 p 的高度為 200px,因為在設計稿這樣尺寸的屏幕中,1rem = 50px,所以該 p 的 rem 的值為:200/50 rem,即 200/@r。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com