建立兩列布局,同時保持列背景顏色全尺寸


在兩列布局中,內容被組織成兩列等寬的列。但是,確保每列的背景顏色填充內容的整個高度可能是一個挑戰,尤其是在每列的內容長度不同時。

CSS 網格是建立具有多列的響應式佈局的另一種選擇。較舊的佈局方法,例如浮動和基於表格的佈局,也可以使用,但不推薦,因為它們有侷限性和缺乏靈活性。

演算法

  • 定義一個包裝類,其 display 屬性設定為 flex。這將為兩列建立一個 flex 容器。

  • 定義左列類,其 flex-grow 屬性設定為 1。這將使左列填充容器中的可用空間。另外,設定左列的背景顏色。

  • 定義右列類,其 flex-grow 屬性設定為 1。這將使右列填充容器中的可用空間。另外,設定右列的背景顏色。

  • 將左列內容和右列內容新增到包裝元素中。

  • 最終結果是一個兩列等寬的佈局,左列為紅色 (#e62626),右列為較深的紅色 (#864f4f)。

示例

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Two Column Layout</title>
<!------------------------- CSS ---------------------------->
<style>

  /* Define a flex container with the wrapper class */
  .wrapper {
  display: flex;
  }

  /* Define the left column with flex-grow set to 1 to fill the available space, and set the background color */
  .left-column {
  flex: 1;
  background-color: #e62626;
  }

  /* Define the right column with flex-grow set to 1 to fill the available space, and set the background color */
  .right-column {
  flex: 1;
  background-color: #864f4f;
  }

</style>

</head>

<body>
  
  <div class="wrapper">
    <div class="left-column">
      <!-- content for the left column -->
      <h1>Left column</h1>
      <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Cum dolorem ab magni rerum. Molestiae facere libero ut magnam, accusamus id voluptas eligendi officiis a harum eaque, autem obcaecati? Distinctio, recusandae.</p>
    </div>
    <div class="right-column">
      <!-- content for the right column -->
      <h1>Right column</h1>
      <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Recusandae necessitatibus beatae ullam reiciendis aliquid dolorum explicabo quod consectetur deleniti, maxime quo laudantium sed vel iure nemo! In molestiae aliquid quasi?</p>
    </div>
  </div>

</body>
</html>

然而,這並不適用於需要精確控制元素放置的複雜佈局或設計。對不支援 CSS3 flexbox 的舊版瀏覽器支援有限。這需要仔細考慮內容層次結構,以確保在較小螢幕上正確排列列。一旦實現,更改佈局可能很困難。

結論

您需要考慮一些約束條件

  • CSS 約束:要保持每列的背景顏色全尺寸,需要使用 clearfix hack 或使用 flexbox 或網格佈局。

  • 內容約束:每列的內容需要適合列的寬度和高度,否則可能會破壞佈局。

  • 響應式設計約束:您需要確保兩列布局具有響應性,並且在不同的螢幕尺寸上都能正常工作。

  • 輔助功能約束:確保佈局可供殘疾使用者訪問非常重要。

  • 瀏覽器相容性約束。

請記住徹底測試您的佈局,並根據需要進行調整,直到您對結果滿意為止。

更新於:2023年8月18日

240 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告