在本次講座中,我們將深入探討 CSS Flexbox,這是一個強大的佈局工具,可幫助您設計回應靈敏且靈活的佈局。您將學習如何使用 Flexbox 有效地對齊、分佈和排序元素,使您的設計在不同裝置上更具適應性。
Flexbox 是「Flexible Box Layout」的縮寫,是一個 CSS 佈局模組,可以更輕鬆地設計可適應不同螢幕尺寸的佈局。它允許容器中的項目靈活排列,根據可用空間動態對齊它們。
在開始使用 Flexbox 之前,我們先來了解一下它的主要元件:
您可以透過在容器上設定 display: flex 來啟用 Flexbox。
.flex-container { display: flex; }
現在,.flex-container 內的子元素將按照 Flexbox 規則運作。
flex-direction 控制彈性項目在容器中放置的方向。預設情況下,項目放置在一行中。
價值觀:
範例:
.flex-container { display: flex; flex-direction: row; /* You can change to column */ }
justify-content 用於沿著主軸對齊 Flex 項目(如果 flex-direction: row 則水平對齊;如果 flex-direction: column 則垂直對齊)。
價值觀:
範例:
.flex-container { justify-content: center; }
在此範例中,Flex 容器內的項目將會居中。
align-items 沿著橫軸(垂直於主軸)對齊彈性項目。
價值觀:
範例:
.flex-container { align-items: center; }
預設情況下,彈性項目放置在一行上,內容可能會縮小以適應。 flex-wrap 讓彈性項目在必要時換行到多行。
價值觀:
範例:
.flex-container { flex-wrap: wrap; }
align-content 沿著橫軸對齊多行 Flex 專案。當容器在橫軸上有額外的空間,並且有多行彈性項目時使用。
價值觀:
範例:
.flex-container { align-content: space-between; }
讓我們使用 Flexbox 建立一個響應式照片庫。
HTML:
<div class="gallery"> <div class="gallery-item">Image 1</div> <div class="gallery-item">Image 2</div> <div class="gallery-item">Image 3</div> <div class="gallery-item">Image 4</div> <div class="gallery-item">Image 5</div> </div>
CSS:
body { margin: 0; font-family: Arial, sans-serif; } .gallery { display: flex; flex-wrap: wrap; justify-content: space-around; gap: 10px; padding: 20px; } .gallery-item { flex-basis: calc(25% - 20px); /* Four items per row */ background-color: #ddd; padding: 20px; text-align: center; } @media screen and (max-width: 768px) { .gallery-item { flex-basis: calc(50% - 20px); /* Two items per row on smaller screens */ } }
在此範例中:
Flexbox is a powerful tool for responsive design. You can easily adjust the layout by changing flex properties based on the screen size using media queries.
@media screen and (max-width: 600px) { .gallery-item { flex-basis: 100%; /* Items take up full width on small screens */ } }
With this media query, on screens smaller than 600px, each gallery item will take up the full width of the container.
Next Up: In the next lecture, we’ll explore CSS Grid - A Deep Dive, where you’ll learn about CSS Grid and how it compares to Flexbox for building complex layouts. Stay tuned!
Ridoy Hasan
以上是CSS Flexbox 深入探究的詳細內容。更多資訊請關注PHP中文網其他相關文章!