iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 9
1
Modern Web

重新認識 Flex 和 Grid系列 第 9

[Day09] flexbox align-content

  • 分享至 

  • xImage
  •  

接下來幾個屬性都和對齊有關,其中 align-content 這個屬性擅長於操控"相交軸上彈性項目的分布",也非常適合拿來調整內容。

如果你對於 justify-content 已經熟悉,相信 align-content 很快就能上手,因為兩者之間主要差別在於操控方向不同。


align-content

.container {
    align-content: stretch | flex-start | center | flex-end | space-between | space-around | space-evenly 
}
預設:stretch

英文小幫手:

align 有調整、對齊的意思(專注於相交軸)
content 內容的意思,所以操控時會專注於所有的內容物(彈性項目)做調整
stretch 有拉伸、伸展的意思
start 開頭
center 中間
end 尾巴
space-between 將空白空間分配在東西之間
space-around 將空白空間分配在東西兩側
space-evenly 將空白剩下的空間均勻分配

範例

<style>
  .container {
    display: flex;
    align-content: stretch; /*改變屬性值來看看變化*/
    width: 240px;
    height: 240px;
    background-color: #a5def5;
  }
  .item{
    margin: 10px;
    width: 40px;
    height: 40px;
    background-color: #00A0E9;
    color: white;
  }
</style>
<body>
  <div class="container">
    <div class="item">item1</div>
    <div class="item">item2</div>
    <div class="item">item3</div>
    <div class="item">item4</div>
    <div class="item">item5</div>
    <div class="item">item6</div>
  </div>
</body>

接下來會分為兩 part 來各別說明

  1. 拉伸 stretch
  2. 位置對齊的 flex-start | center | flex-end
  3. 分佈對齊的 space-between | space-around | space-evenly

1. 拉伸 stretch

如果沒設定尺寸,預設 stretch 會將彈性項目額外的空間平均分配,彈性項目會被拉撐占滿整個彈性容器。
然而如果你的彈性項目有設尺寸,就會發現它就會把間距拉很開。

彈性項目沒有尺寸的情形:
https://ithelp.ithome.com.tw/upload/images/20200924/20128346oK7KncACQm.png

設定尺寸時:
https://ithelp.ithome.com.tw/upload/images/20200924/20128346vL3nLEzYoG.png

2. 位置對齊 flex-start | center | flex-end

  1. align-content: flex-start

對齊相交軸的開頭

https://ithelp.ithome.com.tw/upload/images/20200924/20128346bk8DOq5rJn.png

  1. align-content: center

對齊相交軸的中間(常用來做置中處理)

https://ithelp.ithome.com.tw/upload/images/20200924/201283462W60JK18Vu.png

  1. align-content: flex-end

對齊相交軸的尾巴

https://ithelp.ithome.com.tw/upload/images/20200924/20128346qlHHH9z8pn.png

3. 分佈對齊 space-between | space-around | space-evenly

對齊的方式同樣以相交軸為準。然而和 justify-content 的差別在於分佈對齊時,因為會以行為單位做分佈,所以相交軸上的同一行會一起做分佈對齊。

  • align-content: space-between

彈性項目對齊相交軸"頭部",最後一個則對齊尾巴,剩下的塞滿並且平均分配空隙。

https://ithelp.ithome.com.tw/upload/images/20200924/20128346ip55gxgDKT.png

  • align-content: space-around

彈性項目對齊相交軸"中間",占完彈性項目後,每個彈性項目左右兩側的空隙平均分配。

https://ithelp.ithome.com.tw/upload/images/20200924/20128346dRgoaVGLMe.png

  • align-content: space-evenly

彈性項目對齊相交軸"中間",佔完彈性項目後,剩下的空隙平均分配

https://ithelp.ithome.com.tw/upload/images/20200924/20128346k82N0Fmgow.png

是不是覺得 space-aroundspace-evenly 非常的像呢?如果忘記了可以回顧 第八天 我在 justify-content 上畫的空白分配線XD


資料來源:


上一篇
[Day08] flexbox justify-content
下一篇
[Day10] flexbox align-items
系列文
重新認識 Flex 和 Grid30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言