如何使用 CSS 建立響應式之字形(交替)佈局?


之字形佈局的排列方式是:圖片,然後是文字;接下來是文字,然後是圖片,以此類推。響應式之字形佈局會根據裝置(桌上型電腦、平板電腦或移動裝置)調整文字和圖片的排列方式。在移動裝置等較小的裝置上,列會垂直排列。

設定文字容器

我們為文字設定了一個容器,類名為width66。如下所示,文字將佔據66%的寬度,即2/3。

<div class="width66">
   <h1>Docker</h1>
   <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Mollitia tempore expedita sequi consequuntur rerum quasi voluptate deleniti iure quae magni qui, laudantium illo dolorum temporibus, dolor labore, quos eos. Dolores?</p>

設定圖片容器

我們為圖片設定了一個容器,類名為width33。如下所示,圖片將佔據33%的寬度,即1/3。

<div class="width33">
   <img src="https://tutorialspoint.tw/kubernetes/images/kubernetes-mini-logo.jpg" alt="Kubernetes">
</div>

清除浮動

在這裡,我們將clear屬性設定為both值。這是為了將元素推到左浮動和右浮動元素的下方。

.row:after {
   content: "";
   display: table;
   clear: both
}

我們的2/3列

這是佈局中文字的容器。寬度設定為66%,即2/3列。剩餘的33%空間將分配給包含圖片的列。

.width66 {
   float: left;
   width: 66.66666%;
   padding: 20px;
   height: 471px;
}

我們的1/3列

這是佈局中圖片的容器。寬度設定為33%,即1/3列。剩餘的66%空間分配給包含文字的列。

.width33 {
   float: left;
   width: 33.33333%;
   padding: 20px;
   height: 471px;
}

設定響應式

媒體查詢的概念用於實現響應式。對於小於1000畫素的裝置,將寬度設定為100%。這將使列垂直排列。

@media screen and (max-width: 1000px) {
   .width66,
   .width33 {
      width: 100%;
      text-align: center;
   }
   img {
      margin: auto;
   }
}

示例

要使用 CSS 建立響應式之字形佈局,程式碼如下:

<!DOCTYPE html>
<html>
<head>
   <style>
      * {
         box-sizing:border-box;
      }
      body {
         margin: 0;
         font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
      }
      div h1{
         font-size: 40px;
         color: blueviolet;
         text-align: center;
      }
      div p{
         font-size: 18px;
      }
      .container {
         padding: 64px;
      }
      .row:after {
         content: "";
         display: table;
         clear: both
      }
      .width66 {
         float: left;
         width: 66.66666%;
         padding: 20px;
         height: 471px;
      }
      .width33 {
         float: left;
         width: 33.33333%;
         padding: 20px;
         height: 471px;
      }
      .large-font {
         font-size: 48px;
      }
      .xlarge-font {
         font-size: 64px
      }
      .button {
         border: none;
         color: white;
         padding: 14px 28px;
         font-size: 16px;
         cursor: pointer;
         background-color: #4CAF50;
      }
      img {
         display: block;
         height: 250px;
         width: 250px;
         max-width: 100%;
      }
      @media screen and (max-width: 1000px) {
         .width66,
         .width33 {
            width: 100%;
            text-align: center;
         }
         img {
            margin: auto;
         }
      }
   </style>
</head>
<body>
<div class="width66">
   <h1>Docker</h1>
   <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Mollitia tempore expedita sequi consequuntur rerum quasi voluptate deleniti iure quae magni qui, laudantium illo dolorum temporibus, dolor labore, quos eos. Dolores?</p>
</div>
<div class="width33">
   <img src="https://tutorialspoint.tw/docker/images/docker-mini-logo.jpg" alt="Docker">
</div>
<div class="width33">
   <img src="https://tutorialspoint.tw/ansible/images/ansible-mini-logo.jpg" alt="Ansible">
</div>
<div class="width66">
   <h1>Ansible</h1>
   <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Mollitia tempore expedita sequi consequuntur rerum quasi voluptate deleniti iure quae magni qui, laudantium illo dolorum temporibus, dolor labore, quos eos. Dolores?</p>
</div>
<div class="width66">
   <h1>Kubernetes</h1>
   <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Mollitia tempore expedita sequi consequuntur rerum quasi voluptate deleniti iure quae magni qui, laudantium illo dolorum temporibus, dolor labore, quos eos. Dolores?</p>
</div>
<div class="width33">
   <img src="https://tutorialspoint.tw/kubernetes/images/kubernetes-mini-logo.jpg" alt="Kubernetes">
</div>
</body>
</html>

更新於:2023年12月14日

2K+ 瀏覽量

開啟您的職業生涯

完成課程獲得認證

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