
本文将介绍如何使用 CSS Grid 布局创建一个固定显示的 3x3 网格,同时将超出网格范围的元素放置在右侧,并提供横向滚动条以便访问这些元素。这种布局方式适用于需要在有限空间内展示核心内容,同时提供更多内容供用户浏览的场景。
核心思路是利用 CSS Grid 的 grid-auto-flow: column dense; 属性,结合自定义 CSS 变量控制网格的列数、行数和间距,并通过 overflow-x: auto; 属性实现横向滚动。
HTML 结构:
首先,我们需要一个包含所有元素的容器,并为每个元素添加相应的类名。
立即学习“前端免费学习笔记(深入)”;
<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 样式:
接下来,我们为容器和元素添加 CSS 样式,以实现所需的网格布局和滚动效果。
.cards {
/* 定义列数 */
--cols: 3;
/* 定义行数 */
--rows: 3;
/* 定义网格间距 */
--gap: 5px;
/* 计算每个单元格的宽度 */
--width: calc((100% - var(--gap) * (var(--cols) - 1)) / var(--cols));
display: grid;
position: relative;
/* 设置网格自动填充为列,并启用密集填充 */
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: column dense; 属性,结合自定义 CSS 变量和 overflow-x: auto; 属性,我们可以轻松地创建一个固定显示的 3x3 网格,并将超出网格范围的元素放置在右侧,并提供横向滚动条以便访问这些元素。这种布局方式适用于需要在有限空间内展示核心内容,同时提供更多内容供用户浏览的场景。
以上就是使用 CSS Grid 创建固定 3x3 网格并实现滚动效果的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号