常見的前端佈局方式

1. 佈局概念

最傳統、原始的Web佈局設計。網頁最外層容器(outer)有固定的大小,所有的內容以該容器爲標準,超出寬高的部分用滾動條(overflow:scroll)來實現滾動查閱。

2. 優點

採用的是css2之前的寫法,不存在瀏覽器兼容性。佈局簡單。

3. 缺點

但是移動端不可以使用pc端的頁面,兩個頁面的佈局不一致,移動端需要自己另外設計一個佈局並使用不同域名呈現。

4. 實現方法

PC端:
最外層居中,使用固定的寬(高)度,超出部分用滾動條查閱。
例如百度首頁外層body設置了一個min-width:1000px;,當我打開調試器的時候,底部x軸滾動條就出現了。

當然,它的佈局比普通的靜態佈局要複雜地多了,比如推薦模塊又是一個流式佈局....

移動端
由於靜態佈局不適用於手機端,所以一般都會另設計一個佈局,並使用另一個域名。
例如剛剛百度的PC端我們切換成手機模擬器訪問試試:

確實有點醜是吧。

我們訪問一下百度的手機端頁面:m.baidu.com

舒服!

再看一下最近比較'火'的京東的案例:分別訪問

  • jd.com
  • m.jd.com


可以發現:
PC端限制了最小的寬度, 低於了則以最小寬度出現滾動條
移動端限制了最大的寬度, 超過了則以最大寬度居中顯示

二、流式佈局(Liquid Layout)

1. 佈局概念

流式佈局也叫百分比佈局

這邊引入一下自適應佈局:
分別爲不同的屏幕設置佈局格式,當屏幕大小改變時,會出現不同的佈局,意思就是在這個屏幕下這個元素塊在這個地方,但是在那個屏幕下,這個元素塊又會出現在那個地方。只是佈局改變,元素不變。可以看成是不同屏幕下由多個靜態佈局組成的。

而流式佈局的特點是隨着屏幕的改變,頁面的佈局沒有發生大的變化,可以進行適配調整,這個正好與自適應佈局相補。

流式佈局常用的設計模板:
左側固定+右側自適應
左右固定寬度+中間自適應(參考京東手機版)

頁面元素的寬度按照屏幕進行適配調整,主要的問題是如果屏幕尺度跨度太大,那麼在相對其原始設計而言過小或過大的屏幕上不能正常顯示 。 你看到的頁面,元素的大小會變化而位置不會變化——這就導致如果屏幕太大或者太小都會導致元素無法正常顯示。

2. 優點

元素的寬高用百分比做單位,元素寬高按屏幕分辨率調整,佈局不發生變化

3. 缺點

屏幕尺度跨度過大的情況下,頁面不能正常顯示。

三、彈性佈局(Flex Layout)

1. 佈局概念

彈性佈局是CSS3引入的強大的佈局方式,用來替代以前Web開發人員使 的一些複雜易錯的hacks方法(如float實現流式佈局)。

2. 優點

簡單、方便、快速

3. 缺點

CSS3新特性,瀏覽器兼容性非常頭疼。而且手機瀏覽器對flex的支持也不是很理想。

4. 實現方法

flex-flow: ||

flex-direction和flex-wrap的簡寫,在兩者選其一。

flex-direction: row(初始值) | row-reverse | column | column-reverse

flex-direction定義了彈性項目在彈性容器中的放置方向,默認是row,即行內方向(一般而言是由左往右,但注意這個和書寫模式有關)。

row:主軸爲水平方向,項目沿主軸從左至右排列

column:主軸爲豎直方向,項目沿主軸從上至下排列

row-reverse:主軸水平,項目從右至左排列,與row反向

column-reverse:主軸豎直,項目從下至上排列,與column反向

flex-wrap: nowrap(初始值) | wrap | wrap-reverse

flex-wrap定義是否需要拆行以使得彈性項目能被容器包含。*-reverse代表相反的方向。

nowrap:自動縮小項目,不換行

wrap:換行,且第一行在上方

wrap-reverse:換行,第一行在下面

兩者結合起來即flex-flow屬性就確定了彈性容器在main axis和cross axis兩個方向上的顯示方式

自適應佈局(Adaptive)的特點是分別爲不同的屏幕分辨率定義佈局。佈局切換時頁面元素髮生改變,但在每個佈局中,頁面元素不隨窗口大小的調整發生變化。 你可以把自適應佈局看作是靜態佈局的一個系列。 就是說你看到的頁面,裏面元素的位置會變化而大小不會變化。

四、響應式佈局(Responsive layout)

採用自適應佈局和流式佈局的綜合方式,爲不同屏幕分辨率範圍創建流式佈局

現在優秀的頁面都追求一套代碼可以實現三端的瀏覽;
從概念可以看出來,自適應佈局的誕生是爲了實現不同屏幕分辨率的終端上瀏覽網頁的不同展示方式。

通過響應式設計能使網站在手機和平板電腦上有更好的瀏覽閱讀體驗。屏幕尺寸不一樣展示給用戶的網頁內容也不一樣.

利用媒體查詢可以檢測到屏幕的尺寸(主要檢測寬度),並設置不同的CSS樣式,就可以實現響應式的佈局。

大名鼎鼎的bootstrap就是響應式佈局的專家。

官方放出狠話:
Bootstrap 提供了一套響應式、移動設備優先的流式柵格系統,隨着屏幕或視口(viewport)尺寸的增加,系統會自動分爲最多12列。它包含了易於使用的預定義類,還有強大的mixin 用於生成更具語義的佈局。

連我們最熱愛的React官方也熱衷於響應式佈局設計:
《React官方網站》

手機端下的React頁面:

五、定位佈局

定位佈局也是目前比較常用的一種佈局方式,關鍵詞: position: fixed;固定佈局,將元素固定在一個位置,不隨頁面移動而移動,position: relative;相對定位,相對於元素自身定位,不脫離文檔流,相當於定義一個參照物,一般和絕對定位結合使用,position: absolute;絕對定位,脫離文檔流,一般和相對定位結合使用,如果不定義相對定義,將會相對於整個瀏覽器定位,所以定位佈局,一般情況下都是相對定位和絕對定位結合着來,相當定位相當於劃定一個勢力範圍,制定一個封閉的容器塊,然後絕對定位就行對於相對定位來定位,從而達到有效的佈局。

 

六.margin和padding 

margin是外邊距,padding內邊距,外邊距是盒子與盒子之間的距離,內邊距是盒子的邊和盒子內部元素的距離,因此在使用的時候應該有選擇的使用,另外margin會出現吃邊距的情況

 

轉載 https://www.cnblogs.com/soyxiaobi/p/9594557.html

轉載 https://www.jianshu.com/p/c43da3f92202

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章