<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>品字布局</title>
<style>
body, html {
height: 100%;
margin: 0;
padding: 0;
}
.container {
display: flex;
flex-direction: column;
justify-content: center; /* 垂直居中 */
align-items: center; /* 水平居中 */
height: 100%;
}
.row {
display: flex;
justify-content: space-around; /* 横向均匀分布 */
width: 100%;
}
.item {
width: 30%; /* 根据需要调整宽度 */
height: 0; /* 使用padding-bottom维持宽高比 */
padding-bottom: 30%; /* 正方形,可根据需要调整 */
background-color: #f0f0f0; /* 示例颜色 */
margin: 5px; /* 间距 */
box-sizing: border-box; /* 包含padding和border */
}
/* 响应式布局,根据屏幕宽度调整布局 */
@media screen and (max-width: 768px) {
.row {
flex-direction: column; /* 小屏幕下垂直排列 */
align-items: center;
}
.item {
width: 80%; /* 调整小屏幕下的宽度 */
padding-bottom: 80%; /* 调整小屏幕下的高度 */
}
}
</style>
</head>
<body>
<div class="container">
<div class="row">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
<div class="row">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
<div class="row">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
<!-- 可以继续添加更多的行 -->
</div>
</body>
</html>
关键点解释:
container
: 使用display: flex
和justify-content: center
,align-items: center
实现垂直和水平居中。row
: 使用display: flex
和justify-content: space-around
让每一行的元素横向均匀分布。item
: 使用width
和padding-bottom
来控制宽高比,方便保持正方形或其他比例。box-sizing: border-box
确保padding
和border
包含在元素总宽度和高度内。- 响应式布局: 使用
@media screen and (max-width: 768px)
在小屏幕下将布局改为垂直排列,并调整item
的大小。 - 满屏效果:
html, body { height: 100%; }
和container { height: 100%; }
确保容器占满整个屏幕高度。
使用方法:
- 将代码保存为 HTML 文件 (例如
index.html
)。 - 在浏览器中打开该文件。
进一步改进:
- 可以通过 JavaScript 动态生成
row
和item
元素,实现更灵活的布局控制。 - 可以使用 CSS Grid 或其他布局方案实现更复杂的品字布局变体。
- 可以根据设计需求调整颜色、间距、宽高比等样式。
这个方案提供了基本的品字布局框架,并考虑了响应式设计。你可以根据具体需求进行调整和扩展。
标签:flex,item,布局,满屏,padding,width,品字,手写 From: https://www.cnblogs.com/ai888/p/18562375