如何使用 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.com/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.com/docker/images/docker-mini-logo.jpg" alt="Docker">
</div>
<div class="width33">
   <img src="https://tutorialspoint.com/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.com/kubernetes/images/kubernetes-mini-logo.jpg" alt="Kubernetes">
</div>
</body>
</html>

更新于:2023年12月14日

2K+ 浏览量

开启您的职业生涯

完成课程获得认证

开始学习
广告