
本文将详细讲解如何使用 CSS Grid 布局创建一个 3x3 的网格,并且当元素数量超过9个时,允许用户通过横向滚动来查看剩余的元素。这种布局方式常用于需要在有限的空间内展示大量内容,同时保证首屏展示效果的场景。
核心思路是利用 CSS Grid 的 grid-auto-flow 属性控制元素的排列方向,并结合 overflow-x 属性实现横向滚动。通过 CSS 自定义属性,我们可以方便地控制网格的列数、行数和间距。
HTML 结构:
首先,我们需要一个包含所有元素的容器,例如一个 div 元素,并为每个元素添加一个类名,例如 card。
立即学习“前端免费学习笔记(深入)”;
<div class="cards"> <div class="card">ONE</div> <div class="card">TWO</div> <div class="card">THREE</div> <div class="card">FOUR</div> <div class="card">FIVE</div> <div class="card">SIX</div> <div class="card">SEVEN</div> <div class="card">EIGHT</div> <div class="card">NINE</div> <div class="card">TEN</div> <div class="card">ELEVEN</div> <div class="card">TWELVE</div> <div class="card">THIRTEEN</div> <div class="card">FOURTEEN</div> </div>
CSS 样式:
接下来,我们需要为容器 .cards 设置 CSS 样式,以实现 3x3 的网格布局和横向滚动效果。
.cards {
/* 定义列数 */
--cols: 3;
/* 定义行数 */
--rows: 3;
/* 定义网格间距 */
--gap: 5px;
/* 计算每个元素的宽度 */
--width: calc((100% - var(--gap) * (var(--cols) - 1)) / var(--cols));
display: grid;
position: relative;
/* 设置元素排列方向为 column dense */
grid-auto-flow: column dense;
/* 定义行数 */
grid-template-rows: repeat(var(--rows), 1fr);
/* 定义列宽 */
grid-auto-columns: var(--width);
/* 设置网格间距 */
grid-gap: var(--gap);
/* 允许横向滚动 */
overflow-x: auto;
}
.card {
background-color: dodgerblue;
color: white;
padding: 1rem;
height: 4rem;
}代码解释:
通过使用 CSS Grid 布局和 grid-auto-flow 属性,我们可以轻松创建一个固定大小的网格,并将剩余元素放置在网格右侧,通过横向滚动的方式展示。这种布局方式适用于需要在有限空间内展示大量内容,同时保证首屏展示效果的场景。通过调整 CSS 自定义属性,可以灵活控制网格的列数、行数和间距,从而实现不同尺寸的网格布局。
以上就是使用 CSS Grid 创建 3x3 网格布局并实现滚动效果的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号