如何使用 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>
广告