自適應(yīng)相關(guān)匯總

東西比較零散,所以直接理一理。
這些東西都是自己寫的,如果有問(wèn)題,請(qǐng)輕拍!

1. iphone VS ipad

吐槽先,之前做了一版,因?yàn)閕phone和ipad要用同一個(gè)頁(yè)面,所以我傻兮兮的給iphone和ipad分別做樣式,光css的行數(shù)就已經(jīng)不忍直視了。
后來(lái)??! 要改樣式?。?! 當(dāng)時(shí)我的內(nèi)心的小人就在吶喊,oh! no!??!
后來(lái)想出了個(gè)非常贊的解決方法,哈哈哈。

思路就是確定iphone和ipad內(nèi)容部分寬度的大小,之間形成等比例關(guān)系,然后只要弄好iphone的樣式,ipad的樣式只要修改em就可了。

上關(guān)鍵點(diǎn)

  • 設(shè)置rem
    html{
    font-size: 100px;//此時(shí)em('body'的字體大小)也為100px;因?yàn)?html'是父元素,'body'是子元素
    }

  • 判斷iphone還是ipad

    <script>
    getType();
    function getType(){
    var body = document.querySelector('body');
    // alert(body);
    if(navigator.userAgent.indexOf("iPhone") != -1) {
    body.style.fontSize = "50px";

          }  
          if(navigator.userAgent.indexOf("iPad") != -1){  
                 
          }  
      };      
    </script>
    <!-- 判斷iphone還是ipad結(jié)束 -->
    
  • html部分限定內(nèi)容寬度

    <div class="wrap"></div>

2. 所有尺寸根據(jù)屏幕大小重新計(jì)算

思路:通過(guò)讀取屏幕寬度后,計(jì)算rem的值。
備注:不適合精細(xì)活,因?yàn)樵谶m應(yīng)屏幕重新計(jì)算時(shí),小的地方會(huì)有些偏差,比如理論上來(lái)說(shuō)有個(gè)圖片應(yīng)該是垂直居中的,但經(jīng)過(guò)重新計(jì)算后,就有可能有點(diǎn)歪了。
在安卓手機(jī)上用過(guò)這個(gè)辦法,ok。(吐個(gè)槽,安卓的分辨率要不要這么多啊,所以就這么辦了!)

  //css部分
  html{font-size:100px;}//設(shè)置為100px只是為了便于計(jì)算

  //js部分
  var wrap_w = document.documentElement.clientWidth;
  var html = document.querySelector('html');   
  caculate(wrap_w);

  //尺寸適應(yīng)
  window.onresize  = function(){
    var new_wrap_w =  document.documentElement.clientWidth;
    if(new_wrap_w < wrap_w){
        wrap_w = new_wrap_w;
        caculate(wrap_w);
    }
    
  }
  function caculate(wrap_w){
    var wrap_w =  document.documentElement.clientWidth;
    if(wrap_w > 980){ //980是內(nèi)容寬度,也就是'wrap'設(shè)置的寬度
        wrap_w = 980;
    }
    var fs = parseInt(wrap_w/9.8);
    html.style.fontSize = fs + 'px';
  } 

3. 寬度按照百分比,高度固定

我發(fā)現(xiàn)這種還是比較實(shí)用的,高度固定后,寫起來(lái)方便多了。至少垂直方向不會(huì)有啥偏的了。
在iphone上用過(guò)這個(gè)辦法,ok。
就是類似這種css

.test{width:20%;height:50px;}

收工!

最后編輯于
?著作權(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)容