17370845950

如何通过css实现等宽等高网格
使用CSS Grid可高效实现等宽等高网格布局,通过display: grid、grid-template-columns/rows定义行列结构,结合repeat()、fr单位和gap控制尺寸与间距;响应式场景下可用auto-fit配合minmax()自动换行并填充空间,需保持比例时可选aspect-ratio属性设置纵横比,内容居中对齐,整体简洁灵活且适配多屏需求。

实现等宽等高的网格布局,最简单高效的方式是使用 CSS Grid。它能轻松创建行列对齐、尺寸统一的网格结构。

使用 CSS Grid 布局

通过 display: gridgrid-template-columns/rows 可以定义规则的网格:

• 使用 repeat() 函数快速生成等分列
• 设置固定或弹性单位(fr)控制每格大小
• 配合 gap 添加间距而不影响尺寸一致性

示例代码:

.container {
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* 三列等宽 */
  grid-template-rows: repeat(2, 100px);  /* 两行等高 */
  gap: 10px;
}
.item {
  background: #3498db;
}

响应式等宽等高网格

希望在不同屏幕下保持网格整齐?可以用 minmax() 搭配 auto-fit

• 自动换行并填充可用空间
• 单个格子设定最小宽度,超出则换行

示例:

.container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
  grid-auto-rows: 100px; /* 所有行固定高度 */
  gap: 10px;
}

配合内容保持比例(可选)

若需每个格子保持正方形或其他比例,可用伪元素或 aspect-ratio

• aspect-ratio: 1 / 1 实现正方形容器
• 内容可绝对定位填充

例如:

.item {
  aspect-ratio: 1 / 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

基本上就这些。Grid 天生适合等宽等高布局,灵活又简洁。根据需求选择固定数量还是自动响应即可。不复杂但容易忽略细节,比如 gap 的计算方式和 fr 单位的分配逻辑。