移動端頁面適配解決方案

來源:互聯網
上載者:User

標籤:等等   dde   移動端   設定   尺寸   決定   resize   動態改變   ems   

一、流體布局

所謂的流體布局,就是用百分比來定義寬度,最外層容器的寬度設定為100%,就可以適配不同的螢幕,子項目按照比例來設定百分比,子項目整體的百分比之和就是100%,但是如果有子項目設定了邊框,或者padding,那麼整體的寬度就會大於100%,這時,我們可以將盒子的尺寸計算方式設定為從邊框計算,通過設定:box-sizing:border-box,此時,盒子設定的寬度就是盒子的實際寬度,就沒有這個問題了。

寬度解決了,高度如何設定呢?一般的元素,高度可以固定不變,所以在螢幕變化時,我們可以看到元素的寬度變了,高度不變,但是對於圖片,如果高度不同,圖片就會被拉扁,此時我們可以將圖片的寬度設為100%;它的寬度就由它的父級的寬度決定,圖片的高度不設定,圖片就會按照寬度變化等比例放大或縮小,這是圖片的特性,這樣就可以做到圖片的適配了。

樣本如下:

  * {       box-sizing: border-box;    }  .wrap {       overflow: hidden;    }  .banner {       overflow: hidden;    }  .banner img {       width: 100%;    }  .l_con {       width:33.333333%;       height:50px;       float: left;    }  .c_con {       width:33.333333%;       height:50px;       float: left;    }   .r_con {       width:33.333333%;       height:50px;       float: left;    }

二、響應式布局

響應式布局,就是使用媒體查詢的方式,針對不同的螢幕,對應不同的樣式,但是移動端的螢幕很多種,如果要對應這麼多套不同的樣式,這樣做也不現實,所以針對移動端,可以劃分出三個螢幕寬度範圍,在範圍之內的,就使用同一套樣式,這樣定義三套樣式就可以了,寬度的區間可以參照蘋果手機的解析度:374px以下為第一個區間,375px到413px為第二個區間,414px以上為第三個區間,按照這個三個區間定義三套樣式,在蘋果手機上可以做到很好的適配,但對於一些其他解析度的手機,可能會有一些不太適配的細節,但是這三套,應該基本上是適用了。

樣本如下:

/* 最小尺寸樣式 */        ... ...         /* 大於等於 375px 尺寸樣式 */   @media screen and (min-width: 375px){         ... ...   }        /*大於等於 414px 尺寸樣式*/  @media screen and (min-width: 414px){        ... ...  }

三、彈性盒子布局模型

彈性盒子布局模型是一個新增的CSS 布局模組,它帶有流體布局和響應式布局的一些特性,而且它用少量的屬性可以實現了多個元素的對齊,分布以及順序等問題,用它能快捷高效的實現適配多終端的布局,這種模組簡稱為 flexbox,flexbox布局模組的先後有三個版本,前兩個版本的一些屬性在最新的瀏覽器上已經得不到支援了,第三個版本在最新的瀏覽器上已得到廣泛的支援。

Flexbox布局模組是CSS3新增的一些屬性,這些屬性分為容器屬性和條目屬性,容器和條目是這種模組裡面的概念,指的其實就是父元素和子項目。父元素通過設定display:flex來聲明flexbox模組、通過flex-flow來設定子項目相片順序、通過justify-content來設定元素的分布方式等等。而子項目通過flex屬性來設定伸長或縮小比例、通過order來設定它在容器中的順序等等。

樣本如下:

.menu {   max-width: 800px;   height: 40px;   margin: 0 auto;   display: flex;   justify-content: flex-start;   align-items: center;}.menu li {   flex: 1;}

四、基於rem的布局

rem是CSS3新增的一個單位,相對於em單位,rem的單位設定更加簡單,它是相對於根項目的的字型大小,其他的元素如果用rem來設定單位,它們對應的基準就是一樣的,這樣,在移動端適配中,除了html元素,其他元素的寬、高、行高、背景定位等等都用rem來設定,我們設定一個寬度作為基準,比如320px,然後按照這個基準,按比例來調節不同螢幕上對應的html元素的字型大小,就可以同步改變其他所有元素的用rem設定的尺寸的大小,這樣就可以做到真正的按比例適配,不像流體布局,只能改變寬度,這種方式直接,高效,目前廣泛應用在移動端布局中。

動態改變html標籤文字大小的JavaScript如下:

(function () {   let calc = function () {       let docElement = document.documentElement;       let clientWidthValue = docElement.clientWidth > 640 ? 640 : docElement.clientWidth;       docElement.style.fontSize = 20 * (clientWidthValue / 320) + ‘px‘;   }   calc();   window.addEventListener(‘resize‘, calc);})()

css 代碼設定如下:

.search{   position: absolute;   right:0.725rem;   top:0.625rem;   width:1.35rem;   height:1.35rem;   backgrond:url(../images/icons.png) left -31.97rem;   -webkit-background-size: 2.9rem 33.5rem;   background-size: 2.9rem 33.5rem;}

在實際開發中,我們可以根據實際需要,選擇適合的適配方式。

本文原出處:http://pcedu.pconline.com.cn/1024/10241144.html

移動端頁面適配解決方案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.