移動端rem用法總結

先介紹一下這個近年來突起的黑馬html

CSS3中新增的屬性,從IE9開始兼容,手機端都兼容。
參考的是<html>這個標籤的font-size。rem中的r就是root根的意思。
因此rem要比em好用的多,由於em參考的是父親的字號,和rem永遠參考的是根元素(html標籤)的字號。

rem被髮明,其實是爲了作字號的變化方便一點。

中國的前端工程師,發現,rem不單單能夠用來設置字號。還能夠用來設置任何須要長度的地方。好比:
width、height、line-hight、background-size、border-width。
 
用這個黑馬是能夠作不一樣分辨率的響應式佈局的  固然移動端就不要考慮pc了 兼容到ipad就能夠了 
 
思路就是全部的單位都用rem來寫  無論是div的寬高 仍是a標籤的字體大小
 
假設咱們的移動端psd是按照640的標準來的 那麼就設置 html{font-size:20px} 
再去把div的寬度和高度由像素所有轉變爲rem  還有字體大小 也轉換一下 
 
這只是兼容了一個手機型號 或者說640的viewport的佈局 那麼更小的或者更大的怎麼辦呢  不要着急  有兩種辦法來解決  看你習慣了
 
第一種  media出場
複製代碼
html {
    font-size : 20px;
}
@media only screen and (min-width: 401px){
    html {
        font-size: 25px !important;
    }
}
@media only screen and (min-width: 428px){
    html {
        font-size: 26.75px !important;
    }
}
@media only screen and (min-width: 481px){
    html {
        font-size: 30px !important; 
    }
}
@media only screen and (min-width: 569px){
    html {
        font-size: 35px !important; 
    }
}
@media only screen and (min-width: 641px){
    html {
        font-size: 40px !important; 
    }
}
複製代碼

第二種辦法 來了前端

複製代碼
<script>
     (function (doc, win) {
          var docEl = doc.documentElement,
            resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
            recalc = function () {
              var clientWidth = docEl.clientWidth;
              if (!clientWidth) return;
              docEl.style.fontSize = 20 * (clientWidth / 320) + 'px';
            };

          if (!doc.addEventListener) return;
          win.addEventListener(resizeEvt, recalc, false);
          doc.addEventListener('DOMContentLoaded', recalc, false);
        })(document, window);
</script>
複製代碼

好了 你們趕忙去試試吧  若是有什麼問題歡迎留言  新手總結 歡迎拍板 前端工程師

相關文章
相關標籤/搜索