使用Flexbox實現高階CSS佈局


CSS3提供了一種名為彈性盒佈局(Flexbox)的佈局模式。Flexbox(彈性盒)是CSS3的一種佈局模式。使用此模式,您可以輕鬆建立複雜應用程式和網頁的佈局。它包括容器、彈性專案等。容器具有以下屬性:

  • flex-direction

  • flex-wrap

  • flex-flow

  • justify-content

  • align-items

  • align-content

這是一張包含所有Flexbox示例的圖片。它使用了flex、flex-wrap、justify-content、align-items等屬性:

設定父容器樣式

我們在這裡設定了父容器的樣式。透過將`display`屬性設定為`flex`,使flex容器變得靈活:

.container {
   display: flex;
   flex-wrap: wrap;
   justify-content: space-evenly;
   background-color: lightblue;
}

彈性專案

父容器包含三個容器,即彈性專案:

<div class="container1">
   <div>1</div>
   <div>2</div>
   <div>3</div>
</div>
<div class="container2">
   <div>1</div>
   <div>2</div>
   <div>3</div>
</div>
<div class="container3">
   <div>1</div>
   <div>2</div>
   <div>3</div>
</div>

設定彈性專案1樣式

彈性專案的樣式如下所示,`align-self`設定為`flex-start`,以便元素位於容器的開頭:

.container1 {
   align-self: flex-start;
   display: flex;
   background-color: rgb(71, 30, 255);
   width: 200px;
   margin: 20px;
}
.container1 > div {
   background-color: #f1f1f1;
   margin: 10px;
   padding: 10px;
   font-size: 30px;
}

設定彈性專案2樣式

彈性專案的樣式如下所示。`justify-content`設定為`center`,以便將彈性專案與容器中心對齊:

container2 {
   display: flex;
   background-color: rgb(14, 126, 79);
   width: 200px;
   justify-content: center;
   align-self: flex-start;
   margin: 20px;
}
.container2 > div {
   background-color: #f1f1f1;
   margin: 10px;
   padding: 10px;
   font-size: 30px;
}

設定彈性專案3樣式

彈性專案的樣式如下所示。`flex-direction`設定為`column`,以便彈性專案垂直顯示為列:

.container3 {
   display: flex;
   flex-direction: column;
   background-color: rgb(168, 60, 10);
   width: 200px;
   align-items: center;
   margin: 20px;
}
.container3 > div {
   background-color: #f1f1f1;
   margin: 10px;
   padding: 10px;
   width: 20px;
   font-size: 30px;
}

使用Flexbox進行CSS佈局

示例

以下是使用Flexbox實現高階CSS佈局的程式碼:

<!DOCTYPE html>
<html>
<head>
   <style>
      body {
         font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
      }
      .container {
         display: flex;
         flex-wrap: wrap;
         justify-content: space-evenly;
         background-color: lightblue;
      }
      .container1 {
         align-self: flex-start;
         display: flex;
         background-color: rgb(71, 30, 255);
         width: 200px;
         margin: 20px;
      }
      .container1 > div {
         background-color: #f1f1f1;
         margin: 10px;
         padding: 10px;
         font-size: 30px;
      }
      .container2 {
         display: flex;
         background-color: rgb(14, 126, 79);
         width: 200px;
         justify-content: center;
         align-self: flex-start;
         margin: 20px;
      }
      .container2 > div {
         background-color: #f1f1f1;
         margin: 10px;
         padding: 10px;
         font-size: 30px;
      }
      .container3 {
         display: flex;
         flex-direction: column;
         background-color: rgb(168, 60, 10);
         width: 200px;
         align-items: center;
         margin: 20px;
      }
      .container3 > div {
         background-color: #f1f1f1;
         margin: 10px;
         padding: 10px;
         width: 20px;
         font-size: 30px;
      }
   </style>
</head>
<body>
   <h1>Flex layout example</h1>
   <div class="container">
      <div class="container1">
         <div>1</div>
         <div>2</div>
         <div>3</div>
      </div>
      <div class="container2">
         <div>1</div>
         <div>2</div>
         <div>3</div>
      </div>
      <div class="container3">
         <div>1</div>
         <div>2</div>
         <div>3</div>
      </div>
      <div class="container1">
         <div>1</div>
         <div>2</div>
         <div>3</div>
      </div>
   </div>
</body>
</html>

更新於:2023年10月27日

505 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.