最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

3分鐘讀懂移動(dòng)端rem使用方法(推薦)

 更新時(shí)間:2019年05月06日 09:00:33   作者:qq20004604  
這篇文章主要介紹了rem使用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1、為什么要用rem

博客很久沒寫了,原因很簡單。

最近接手了一個(gè)項(xiàng)目,要同時(shí)做PC和移動(dòng)端的頁面,之前沒接觸過,但畢竟給錢的是大爺,所以還是硬著頭皮上了。

移動(dòng)端最麻煩的是什么?

不同分辨率適配!

具體來說,有的屏幕320px寬,有的屏幕640px寬,有的更寬,如果你寫固定px,那么要么小的放不下,要么大的有大片空白。

怎么辦?

如果元素固定占用屏幕空間(一般是指寬度而非高度,下同)的百分之xx就ok了。

比如320px的10%是32px,640px的10%是64px,

如果10個(gè)10%寬度的元素放在一起,那肯定就是100%,即擠滿屏幕(寬度),不會(huì)超出,也不會(huì)留白。

簡單理解:
rem 就是指屏幕寬度的百分之x;
或者說,n個(gè)rem = 用戶可視區(qū)域100%寬度

注意,之所以不說高度,是因?yàn)閷挾龋▁軸)滿了后,y軸(高度)方向的內(nèi)容可以通過滾動(dòng)屏幕來查看

上實(shí)例:

1、設(shè)計(jì)師給一個(gè)640px寬度的設(shè)計(jì)圖,

2、你假定64rem=100%寬度(這里是640px),那么1rem=10px;

3、你照著寫出了靜態(tài)頁面,然后按照1rem=10px的比例,將設(shè)計(jì)圖上的元素的大小,全部用rem寫下;

4、完美,你寫的靜態(tài)頁面在640px寬度的頁面上正常展示了;

5、A用戶使用的是320px寬度的手機(jī),因?yàn)槟慵僭O(shè)64rem=100%寬度,因此此時(shí)1rem=5px(320/64=5),于是也完美展示了;

2、rem怎么用?

rem是css單位;
1rem的大小是通過html下的font-size這個(gè)css屬性告訴瀏覽器的;
使用替換px所在的位置即可
假定你預(yù)設(shè)在設(shè)計(jì)稿的時(shí)候 1rem = 10px;

然后一個(gè)元素(class=”ele”)的寬度是20px,高度30px(設(shè)計(jì)稿),

那么你的css這么寫就可以了;

html {
  font-size: 10px;
}

.ele {
  width: 2rem;
  height 3rem;
}

3、在任何分辨率下都適用

發(fā)現(xiàn)問題在哪里了么?如何確認(rèn)1rem等于多少px?

原因是rem是css中使用的單位,css是不會(huì)幫你計(jì)算1rem是多少px的,只能通過你自己來計(jì)算。

計(jì)算方式很簡單,簡單來說:

1、你有一個(gè)設(shè)計(jì)稿A(假定640px),有一個(gè)預(yù)設(shè)的rem和px的比例B(假如是1rem = 10px)

2、獲取用戶瀏覽器的可視區(qū)域的寬度C(假如是320px),那么他此時(shí)1rem的尺寸D 可以根據(jù) B/A = D/C 這個(gè)公式得知

3、原因是你假定屏幕可以容納多少個(gè)rem,這是一個(gè)固定比例(如這里就是64rem)

1 rem = B / A * C;
//代入可得
1 rem = 10px / 640px * 320px = 5px;

4、其他

1、用戶加載完后,你就得設(shè)置好1rem的尺寸吧(記得是設(shè)置在html元素下的font-size);

2、假如用戶屏幕的尺寸會(huì)變,你肯定得考慮吧(刷新1);

3、你懶得去找相應(yīng)的代碼,我總得給你吧(如下);

var fun = function (doc, win) {
  var docEl = doc.documentElement,
    resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
    recalc = function () {
      var clientWidth = docEl.clientWidth;
      if (!clientWidth) return;

      //這里是假設(shè)在640px寬度設(shè)計(jì)稿的情況下,1rem = 20px;
      //可以根據(jù)實(shí)際需要修改
      docEl.style.fontSize = 20 * (clientWidth / 640) + 'px';
    };
  if (!doc.addEventListener) return;
  win.addEventListener(resizeEvt, recalc, false);
  doc.addEventListener('DOMContentLoaded', recalc, false);
}
fun(document, window);

直接執(zhí)行即可

以上所述是小編給大家介紹的rem使用方法詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • vue輪詢請(qǐng)求解決方案的完整實(shí)例

    vue輪詢請(qǐng)求解決方案的完整實(shí)例

    項(xiàng)目開發(fā)中需要做一個(gè)輪詢,所以將實(shí)現(xiàn)的過程記錄了一下,下面這篇文章主要給大家介紹了關(guān)于vue輪詢解決方案的相關(guān)資料,需要的朋友可以參考下
    2021-07-07
  • 去除element-ui下拉框的下拉箭頭的實(shí)現(xiàn)

    去除element-ui下拉框的下拉箭頭的實(shí)現(xiàn)

    我們最開始拿到的element-ui是帶有下拉箭頭的,那么如何去除element-ui下拉框的下拉箭頭的實(shí)現(xiàn),本文就詳細(xì)的介紹一下,感興趣的可以了解一下
    2023-08-08
  • element如何初始化組件功能詳解

    element如何初始化組件功能詳解

    Element UI是一套基于Vue的桌面端組件庫,封裝好了很多常用的UI組件,下面這篇文章主要給大家介紹了關(guān)于element如何初始化組件功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • vue3.0中sass全局的使用過程

    vue3.0中sass全局的使用過程

    這篇文章主要介紹了vue3.0中sass全局的使用過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue?響應(yīng)式系統(tǒng)依賴收集過程原理解析

    Vue?響應(yīng)式系統(tǒng)依賴收集過程原理解析

    Vue 初始化時(shí)就會(huì)通過 Object.defineProperty 攔截屬性的 getter 和 setter ,為對(duì)象的每個(gè)值創(chuàng)建一個(gè) dep 并用 Dep.addSub() 來存儲(chǔ)該屬性值的 watcher 列表,這篇文章主要介紹了Vue?響應(yīng)式系統(tǒng)依賴收集過程分析,需要的朋友可以參考下
    2022-06-06
  • Vue組件之非單文件組件的使用詳解

    Vue組件之非單文件組件的使用詳解

    Vue中常常會(huì)把組件分為非單文件組件和單文件組件,這篇文章主要為大家介紹了非單文件組件的具體使用方法,文中的示例代碼講解詳細(xì),需要的可以參考一下
    2023-05-05
  • 詳解如何使用router-link對(duì)象方式傳遞參數(shù)?

    詳解如何使用router-link對(duì)象方式傳遞參數(shù)?

    這篇文章主要介紹了如何使用router-link對(duì)象方式傳遞參數(shù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Vue3使用Echarts導(dǎo)致tooltip失效問題及解決方法

    Vue3使用Echarts導(dǎo)致tooltip失效問題及解決方法

    Vue3 使用 proxy 對(duì)象代理,而 echarts 則使用了大量的全等(===), 對(duì)比失敗從而導(dǎo)致了bug,這篇文章主要介紹了Vue3使用Echarts導(dǎo)致tooltip失效問題及解決方法,需要的朋友可以參考下
    2023-08-08
  • 微信小程序Webview與H5通信的思路與實(shí)戰(zhàn)記錄

    微信小程序Webview與H5通信的思路與實(shí)戰(zhàn)記錄

    這篇文章主要介紹了微信小程序Webview與H5通信的思路與實(shí)戰(zhàn)的相關(guān)資料,由于微信小程序與H5之間的通信限制,無法滿足業(yè)務(wù)需求,通過動(dòng)態(tài)改變url的hash值來傳遞參數(shù),并利用vue-router組件的路由守衛(wèi)來避免頁面刷新,需要的朋友可以參考下
    2025-01-01
  • 使用 Element UI Table 的 slot-scope方法

    使用 Element UI Table 的 slot-scope方法

    這篇文章主要介紹了使用 Element UI Table 的 slot-scope方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10

最新評(píng)論

宣威市| 新营市| 铅山县| 宁强县| 南溪县| 垫江县| 梁河县| 墨竹工卡县| 天峨县| 滨海县| 东乌珠穆沁旗| 资讯 | 会东县| 岚皋县| 正宁县| 尼玛县| 乐山市| 桐梓县| 玉环县| 余姚市| 郯城县| 祁连县| 岳阳县| 瑞昌市| 新平| 万源市| 武义县| 家居| 玉溪市| 顺昌县| 肥东县| 开江县| 馆陶县| 乌恰县| 淳化县| 新疆| 西峡县| 伊宁县| 蒙城县| 嘉义县| 灵丘县|