靠這三技能,前端工程師向"不專業"說再見~(2)流動布局


靠這三技能,前端工程師向"不專業"說再見~(2)流動布局


前端工程師在學習RWD時,這叫"流動布局"的小東西也超級重要,不學就等於少一個小螺絲!

前端工程師在撰寫RWD網站時,所使用流動布局 Fluid Grid (又稱「液態布局」或「液態網格」)是兩種技術的組合:「Grid Design (網格式設計)」和「Liquid Layout (液態排版)」,介紹如下:

Grid Design (網格式設計)

而設定相對尺寸 - 百分比 (%) 的同時,也要制定寬度的最大值與最小值。當寬度超過或低於某限制時,版面依然可以固定。這樣一來,若螢幕寬度大於其最大值時,元素的兩側就會留白,這樣就可以確保在網頁設計做完之後,網頁的版面不管在什麼裝置上都能保持適合閱讀的介面。

網頁設計的過程中,會使用<div>進行排版,寫法有兩種:「float (浮動) 」與「display-inline-block」

 

1.float (浮動)

下方的範例用 float 將 4 個 div 由左至右排序。在寬螢幕上可以並排展示,但是在行動裝置上,4 個 div 則會依序自動調整排列位置:後方的 div 會自動移至前一個 div 下方。
See the Pen float-right-n-left by Tedutw (@Tedutw) on CodePen.

結果就算位置重新調整,這 4 個 div 仍然是靠左、或靠右。因為他的原理是使用 「float: left」將元素浮動靠左對齊。你也可以用 「float: right」將元素浮動靠右對齊

 

2.display: inline-block

跟上述的「float (浮動) 」相同,都可將元素做到靠左對齊或靠右對齊,差異是 float (浮動) 會與其他的元素重疊。相反的,display-inline-block 就沒有這個缺點。
兩者差異的例子如下:
See the Pen float vs inline:block by Tedutw (@Tedutw) on CodePen.
<
Liquid Layout (液態排版)

另一個能達成「流動布局 Fluid Grid」的技術是「Liquid Layout (液態排版)」,主要原理就是把尺寸單位改成百分比來製作版面,使每一個區塊的尺寸都能根據瀏覽器的大小自動做調整,而非以固定的尺寸呈現。參考語法如下:
div{
  width: 36%
}
但是一開始寫網頁時,就使用百分比 (%) 這類的相對尺寸來制定元素的大小是有難度的。這時就可以先以固定尺寸 (px) 來製作,等網頁完成後再轉換成相對尺寸 (%) 。
轉換公式參考:子元素的百分比 ={欲變更元素的固定尺寸 / 
父元素的固定尺寸}*百分比。
讓我們舉個例來說:假設整個網頁版面是用 1024px 固定寬度來設計,而要變更的 div 區塊寬度為 360px,則整個網頁版面可視為父元素;欲變更的 div 區塊則視為它的子元素,此例套用公式則為:{360px (欲變更元素的固定值) / 1024px (父元素的固定尺寸)}*百分比 = 35.15625%。

除了各子元素可以這樣換算之外,padding 跟 margin 也可以用這個方法來換算,範例如下 :
padding: 8px,換算成百分比的公式為:
{8px / 1024px (網頁版面的固定尺寸,視為父元素)}*百分比 = 0.78125% 這時 padding: 0.78125%。

本篇為「前端工程師的基礎RWD教學」系列文章第二篇,全系列文章如下:


前端工程師的基礎RWD教學系列文章目錄

  1. 前端工程師的基礎RWD教學(一)RWD基礎概念
  2. 前端工程師的基礎RWD教學(二)流動布局Fluid Grid
  3. 前端工程師的基礎RWD教學(三)Media Query基礎之Media Query使用方法
  4. 前端工程師的基礎RWD教學(四)Media Query基礎之Media Type媒體類型
  5. 前端工程師的基礎RWD教學(五)Media Query基礎之and/not/only判斷條件
  6. 前端工程師的基礎RWD教學(六)Media Query基礎之Media Features-上
  7. 前端工程師的基礎RWD教學(七)Media Query基礎之Media Features-下
  8. 前端工程師的基礎RWD教學-(八)流動圖片Fluid Image


🌌延伸閱讀看這裡:

靠這三技能,前端工程師向"不專業"說再見~(1)RWD基礎觀念

靠這三技能,前端工程師向"不專業"說再見~(3)媒體查詢

前端工程師課程再進化-Media Query的媒體特性(上篇)

有了Python課程+□□□□地表最強就是你

最適合台灣人的人工智慧語音辨識APP----雅婷逐字稿!!

還沒聽過Python嗎?免驚!這篇通通告訴你!

達內課程先就業再付款- 中時電子報


這個網誌中的熱門文章

Python控制結構一點就通!(5)while迴圈

前端工程師絕不能搞錯的CSS中:逗號.空格的差別!

網頁前端CSS必學兩屬性:display與visible