使用 Flexbox 和 Grid 创建一个简单的三栏布局,能够在不同屏幕尺寸上自动调整。
当浏览器宽度大于768像素时,页面会显示三列布局;而当宽度小于768像素时,布局会自动调整为单列。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Responsive Layout</title>
<style>
body {
display: flex;
flex-wrap: wrap;
margin: 0;
padding: 0;
}
.container {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 10px;
width: 100%;
}
.item {
background-color: #4CAF50;
color: white;
padding: 20px;
text-align: center;
font-size: 18px;
}
@media (max-width: 768px) {
.container {
grid-template-columns: 1fr;
}
}
</style>
</head>
<body>
<div class="container">
<div class="item">Column 1</div>
<div class="item">Column 2</div>
<div class="item">Column 3</div>
</div>
</body>
</html>
运行结果如下:
1、125%
2、100%
3、80%
Flexbox 是一种一维布局模型,用于在单一方向(行或列)上排列和对齐元素。适合处理需要在水平或垂直方向上对齐和分配空间的布局。特点有三项:主要处理行(水平)或列(垂直)的布局;元素可以伸缩,自动适应容器的大小;简便的对齐和空间分配功能,比如居中对齐、分布空间等。
Grid 是一种二维布局模型,用于创建行和列的网格。可以同时处理水平和垂直方向的布局。特点如下:同时处理行和列,创建复杂的布局结构;定义容器的行和列,元素可以放置在网格的任意位置;支持元素跨越多个网格区域。