使用CSS Grid和Flexbox两种现代布局方式实现4列12个产品布局的方法
2025-04-15
22
参考资料
以下是使用CSS Grid和Flexbox两种现代布局方式实现4列12个产品布局的方法:
html
Copy Code
<!DOCTYPE html>
<html>
<head>
<style>
/* 方法一:使用CSS Grid(推荐) */
.products-grid {
display: grid;
grid-template-columns: repeat(4, 1fr); /* 4列等宽 */
gap: 20px; /* 列间距 */
padding: 20px;
}
/* 方法二:使用Flexbox */
.products-flex {
display: flex;
flex-wrap: wrap;
gap: 20px;
padding: 20px;
}
.products-flex .product-item {
flex: 1 1 calc(25% - 20px); /* 4列计算(25%宽度 - 间隙) */
}
/* 公共产品样式 */
.product-item {
background: #fff;
border-radius: 8px;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
padding: 15px;
text-align: center;
transition: transform 0.3s ease;
}
.product-item:hover {
transform: translateY(-5px);
}
/* 响应式布局 */
@media (max-width: 992px) {
.products-grid {
grid-template-columns: repeat(3, 1fr); /* 中屏幕显示3列 */
}
}
@media (max-width: 768px) {
.products-grid {
grid-template-columns: repeat(2, 1fr); /* 小屏幕显示2列 */
}
.products-flex .product-item {
flex: 1 1 calc(50% - 20px); /* 响应式调整为2列 */
}
}
@media (max-width: 480px) {
.products-grid {
grid-template-columns: 1fr; /* 手机显示1列 */
}
.products-flex .product-item {
flex: 1 1 100%; /* 手机显示1列 */
}
}
</style>
</head>
<body>
<!-- 使用Grid布局 -->
<div class="products-grid">
<div class="product-item">产品 1</div>
<div class="product-item">产品 2</div>
<div class="product-item">产品 3</div>
<div class="product-item">产品 4</div>
<div class="product-item">产品 5</div>
<div class="product-item">产品 6</div>
<div class="product-item">产品 7</div>
<div class="product-item">产品 8</div>
<div class="product-item">产品 9</div>
<div class="product-item">产品 10</div>
<div class="product-item">产品 11</div>
<div class="product-item">产品 12</div>
</div>
<!-- 或者使用Flexbox布局 -->
<!-- <div class="products-flex">
...同样的产品项...
</div> -->
</body>
</html>
两种布局方式的主要区别:
CSS Grid布局(推荐):
使用grid-template-columns: repeat(4, 1fr)直接创建4列
自动处理间距和换行
更直观的二维布局控制
更容易创建复杂的响应式布局
Flexbox布局:
需要配合flex-wrap: wrap
需要使用calc()计算宽度
更适合单行或简单多列布局
需要更多代码处理响应式
关键特性:
响应式断点:在不同屏幕尺寸自动调整列数
卡片悬停效果:使用transform实现微交互动画
间距控制:使用gap属性统一控制间距
阴影效果:使用box-shadow增加层次感
等宽列:两种方式都能实现等宽列布局
选择建议:
现代浏览器推荐使用CSS Grid,语法更简洁直观
需要支持老旧浏览器时可用Flexbox方案
可根据实际内容高度选择(Grid对齐更简单)
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
本文来自《西里网 . html 网页设计》 -- 发布时间:2025-03-29
本页链接:https://html.ciilii.com/show/news-941.html
原创声明:本篇文章均为西里网原创,由《DeepSeek-R1 模型》自动生成。内容真实性仅供参考学习。
本作品采用 知识共享署名—非商业性使用—相同方式共享 4.0 国际许可协议 (CC BY-NC-SA 4.0) 进行许可。
