[學習筆記] RWD網頁設計02—常見版型佈局設定

Shino Liu
5 min readAug 17, 2020

--

禁止顯示 x 軸法則

設計響應式網頁的鐵則,不會出現 x 軸 !! ( 也就是不會設定 width )。

使用者只會上下滑動網頁而已,而不會左右滑動。

width 和 max-width 的差別

width是當寬度被固定住時,若螢幕解析度小於設定的寬度,下方就會出現 x 軸 的 bar ( 不利於使用者體驗 )

要怎麼解決這問題呢 ?

這時候我們就會設定 max-width!當螢幕解析度大於設定時,依然可以保留最大寬度的限制,但當螢幕解析度向內縮且小於設定時,其內容也會自適應地伸縮唷~

圖一、容器設定 max-width,可以自適應伸縮內容

版型單位 “ % “ 觀念

依據父元素的寬度,再依據你設定的 % 調整寬度,好處是可以自適應父元素的寬度,意思是當父元素寬度變更時,內層元素也會依據 %再調整寬度。若父元素為 <body> 時,此時父元素寬度即等於瀏覽器的寬度。

圖二、HTML 結構,包含 menu、content 兩個容器

圖二為 HTML 設定,最外層的容器為 .wrap,而內層有兩個容器分別為 .menu、.content。

圖三、max-width 和 % 的 CSS 應用

圖三為 CSS 設定,最外層的容器設定 max-width: 500px; ,限制了最大寬度為 500px,而 .menu 設定 width: 30%; ,依據父元素 .wrap 寬度取 30 %,.menu 會顯示為 150px 的寬度; .content 設定 width: 70%; ,依據父元素取 70% 的寬度,.content 則會顯示 350px 的寬度。當解析度小於 500px 時,.menu 和 .content 也會依據比例,自適應伸縮其寬度。

圖四、顯示結果

範例一 : 三欄流體式設計

圖五、三欄式設計示意圖

版型設計要點 : 寬度 % 加起來 等於 100%

做法 : 透過 max-width 限制外層容器的最大寬度,再透過 @ media 設立斷點。利用 % 設定寬度,在改變斷點前後都要注意 %margin / padding 加起來的總寬度要維持在 100%。

圖六、HTML 結構,<ul> 內包含七個 <li>
圖七、CSS 設定 ( 排版方式 )

圖七的 CSS 設定,包刮給最外層的容器 .wrap 設定 max-width: 960px; ,而 .news li 設定每個列表為 width: 31.3333%margin: 0 1% ( 代表 margin 左右各給 1 % ),並且設定 float: left; ,加起來總寬度為 100%,即可維持三欄並排的設計

圖八、CSS 設定 ( 斷點設置 )

圖八為斷點的設置,在螢幕解析度寬度<=768px,寬度調整為 48%,即切換為二欄式;在螢幕解析度寬度 <=569px 時,寬度調整為 98%,即切換為單欄式設計。( 皆保留 margin 左右各 1%,維持總寬度 100% 的法則 )

三欄式設計 demo

範例二 : 左側 float 固定、右側流體式設計 ( 雙欄式版型 )

做法 : 外容器設定 max-width,左側設定固定的寬度 width 並且 float: left; 使左側欄浮動,右側則透過 margin-left 往右推,且不設定寬度。

圖九、雙欄式版型示意圖 ( PC 版 )

→ 延伸 : 加入斷點,在螢幕解析度寬度 768px 以下時,變成滿版的設計

圖十、加入行動版斷點

圖十加入行動版的斷點設計,.menu 選單透過 float: none; 清除浮動,並且設定 width: 100% ,而 .content 內容則將原本設定的 margin 更改為 0。

圖十一、雙欄式版型示意圖 ( 平板 / 手機版 )

雙欄式版型 ( 左側固定 ) demo

如果覺得我的文章寫得不錯或是有幫助到你,可以拍手讓我知道,對我來說是很大的鼓勵,謝謝:)

--

--