最流行的四種移動端布局方式,看這一篇文章就夠了

寫在開篇前——移動端基礎(chǔ)

眾所周知,pc端呢目前處于一種三家分晉,即三種內(nèi)核(webkit,blink,gecko),當然算上馬上要更換內(nèi)核的IE那就是四個。而我們的移動端呢,那就是萬余基于webkit了,所以各位進行移動端web開發(fā)時,只考慮webkit的適配就可以了,怎么樣,開不開心 ?

我們先來看看什么是視口,視口就是瀏覽器顯示頁面內(nèi)容的屏幕區(qū)域。 視口可以分為布局視口、視覺視口和理想視口,他又可以分成一下四種

0.1布局視口 layout viewport

一般移動設(shè)備的瀏覽器都默認設(shè)置了一個布局視口,用于解決早期的PC端頁面在手機上顯示的問題。

iOS, Android基本都將這個視口分辨率設(shè)置為 980px,所以PC上的網(wǎng)頁大多都能在手機上呈現(xiàn),只不過元素看上去很小,一般默認可以通過手動縮放網(wǎng)頁。

布局視口(圖片來自網(wǎng)絡(luò))

0.2視覺視口 visual viewport

字面意思,它是用戶正在看到的網(wǎng)站的區(qū)域。注意:是網(wǎng)站的區(qū)域。

我們可以通過縮放去操作視覺視口,但不會影響布局視口,布局視口仍保持原來的寬度。


視覺視口(圖片來自網(wǎng)絡(luò))

0.3理想視口 ideal viewport(推薦用這個)

為了使網(wǎng)站在移動端有最理想的瀏覽和閱讀寬度而設(shè)定

理想視口,對設(shè)備來講,是最理想的視口尺寸

需要手動添寫meta視口標簽通知瀏覽器操作

meta視口標簽的主要目的:布局視口的寬度應(yīng)該與理想視口的寬度一致,簡單理解就是設(shè)備有多寬,我們布局的視口就多寬

mate標簽(來自網(wǎng)絡(luò))

最標準的viewport設(shè)置

視口寬度和設(shè)備保持一致

視口的默認縮放比例1.0

不允許用戶自行縮放

最大允許的縮放比例1.0

最小允許的縮放比例1.0

ps:注意二倍圖或者三倍圖問題

1.流式布局(百分比布局)

流式布局,就是百分比布局,也稱非固定像素布局。

通過盒子的寬度設(shè)置成百分比來根據(jù)屏幕的寬度來進行伸縮,不受固定像素的限制,內(nèi)容向兩側(cè)填充。

流式布局方式是移動web開發(fā)使用的比較常見的布局方式。

2.flex布局(推薦布局方式)

父盒子開啟display:flex后,默認為不換行,所以使用flex-wrap:wrap;使其換行

使用justify-content: space-around; 使其子盒子主軸間距平均分配

使用align-content: space-around; 使其子盒子側(cè)軸間距平均分配

3.rem布局

方案1

①假設(shè)設(shè)計稿是750px

②假設(shè)我們把整個屏幕劃分為15等份(劃分標準不一可以是20份也可以是10等份)

③每一份作為html字體大小,這里就是50px

④那么在320px設(shè)備的時候,字體大小為320/15就是? 21.33px

⑤用我們頁面元素的大小除以不同的 html字體大小會發(fā)現(xiàn)他們比例還是相同的

⑥比如我們以750為標準設(shè)計稿

⑦一個100100像素的頁面元素在? 750屏幕下,? 就是 100/ 50? 轉(zhuǎn)換為rem? 是? 2rem2rem? 比例是1比1

⑧320屏幕下,? html字體大小為21.33? 則 2rem=? 42.66px? 此時寬和高都是 42.66? 但是寬和高的比例還是 1比1

⑨但是已經(jīng)能實現(xiàn)不同屏幕下? 頁面元素盒子等比例縮放的效果

總結(jié):

①最后的公式:頁面元素的rem值 =? 頁面元素值(px) /? (屏幕寬度? /? 劃分的份數(shù))

②屏幕寬度/劃分的份數(shù)就是 htmlfont-size 的大小

③或者:頁面元素的rem值 =? 頁面元素值(px) /? html font-size 字體大小

方案2

1.less+rem+媒體查詢

2.lflexible.js+rem

4.響應(yīng)式布局

4.1原理

響應(yīng)式需要一個父級做為布局容器,來配合子級元素來實現(xiàn)變化效果。

原理就是在不同屏幕下,通過媒體查詢來改變這個布局容器的大小,再改變里面子元素的排列方式和大小,從而實現(xiàn)不同屏幕下,看到不同的頁面布局和樣式變化。

父容器版心的尺寸劃分

超小屏幕(手機,小于 768px):設(shè)置寬度為 100%

小屏幕(平板,大于等于 768px):設(shè)置寬度為 750px

中等屏幕(桌面顯示器,大于等于 992px):寬度設(shè)置為 970px

大屏幕(大桌面顯示器,大于等于 1200px):寬度設(shè)置為 1170px

但是我們也可以根據(jù)實際情況自己定義劃分

4.2引用bootstrap框架

直接拿Bootstrap 預(yù)先定義好的樣式來使用

修改Bootstrap 原來的樣式,注意權(quán)重問題

學好Bootstrap 的關(guān)鍵在于知道它定義了哪些樣式,以及這些樣式能實現(xiàn)什么樣的效果

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容