iT邦幫忙

2022 iThome 鐵人賽

DAY 18
0
自我挑戰組

商科生初探網頁全端開發系列 第 18

Day18-CSS Flex Box其二

  • 分享至 

  • xImage
  •  

今天接著介紹幾個Flex Box元素:

A:Flex-Wrap
B:Align-Items
C:Align-Content & Align-Self
D:Flex-Basis


Flex-Wrap是個可以決定文字/內容超出範圍時是否換行的屬性:分為換行(flex-wrap:wrap;)、不換行(flex-wrap:nowrap;)、換行時反轉(flex-wrap:wrap-reverse;)
請看圖:
A-ahttps://ithelp.ithome.com.tw/upload/images/20220918/201510311unYS3uXk9.png
<section>下輸入flex-wrap: wrap;後,由圖可以看出靛紫區塊因寬度超出<section>範圍,因此呈現換行排列,此時main-axis為由左至右、cross-axis為由上而下。
A-bhttps://ithelp.ithome.com.tw/upload/images/20220918/20151031WXsw2QHdt9.png
<section>下輸入flex-wrap: nowrap;後,所有區塊即使總寬度超出<section>範圍,仍不換行,反而是貼合於<section>
A-chttps://ithelp.ithome.com.tw/upload/images/20220918/20151031LuY1nHOVkW.png
<section>下輸入flex-wrap: wrap-reverse;後,變更換行方向(cross-axis)為由下而上,main-axis方向不變。
#此時若調整flex-direction為column,其wrap及wrap-reverse便會不同(main-axis、cross-axis改變)


Align-Items這個屬性是基於cross-axis來做排版,請見下圖:

B-ahttps://ithelp.ithome.com.tw/upload/images/20220918/201510317uqwJYG62b.png
<section>下輸入align-items: center;,可發現內容是基於cross-axis(由上而下)置中。

B-bhttps://ithelp.ithome.com.tw/upload/images/20220918/20151031lwxsqOt3lW.png
為說明baseline的特性,我將7個區塊加入A~G識別,並將字體G及綠、紫色區塊放大。
<section>下輸入align-items: baseline;後,可以看出即使字體及區塊變大,A~G仍是基於一條baseline對齊排列。


C-ahttps://ithelp.ithome.com.tw/upload/images/20220918/20151031pYcnaqp7Tb.png
<section>下輸入align-content: center;後,發現所有區塊以置中排列,但和上面提到的align-items: center;不同的是,align-content:必須要設定flex-wrap: wrap/wrap-reverse;屬性,否則無法置中。
C-bhttps://ithelp.ithome.com.tw/upload/images/20220918/20151031s94WbntAB6.png
輸入div:nth-of-type(4){align-self: center;},意指選擇第4個區塊(綠色)使它單獨置中。


Dhttps://ithelp.ithome.com.tw/upload/images/20220918/20151031yEz0cH9OZZ.png
在div中設定flex-basis:100px後,即使原先設定width為50px,其實際寬度仍為100px,換言之,flex-basis已經定義了flex項目值(依main-axis來看,此處為row,因此定義了寬度)


上一篇
Day17-CSS Flex Box其一
下一篇
Day19-Media Queries簡介
系列文
商科生初探網頁全端開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言