html - 如何隐藏隐式网格行?

标签 html css css-grid

下面的代码片段使用 CSS Grid 来增加宽容器的列数。对于窄容器(例如取消注释 width: 80vw 或调整示例大小),它会添加隐式行(在 grid-template-rows 属性中只有 2 个是显式的)。我怎样才能只保留 2 行,使“溢出”2×n 网格的网格项隐藏起来?

.wrapper {
  border: 2px solid #f76707;
  background-color: #fff4e6;
  display: grid;
  /* width: 80vw; */
  grid-template-columns: repeat(auto-fill, 200px);
  grid-template-rows: repeat(2, 1fr);
}

.wrapper > div {
  border: 2px solid #ffa94d;
  border-radius: 5px;
  background-color: #ffd8a8;
  padding: 1em;
  color: #d9480f;
}
<div class="wrapper">
  <div>One</div>
  <div>Two</div>
  <div>Three</div>
  <div>Four</div>
  <div>Five</div>
</div>

最佳答案

您可以将自动生成行的高度设置为 0px使用 grid-auto-rows: 0;并使用 overflow-y: hidden 隐藏它们.演示:

.wrapper {
  border: 2px solid #f76707;
  background-color: #fff4e6;
  display: grid;
  grid-template-columns: repeat(auto-fill, 200px);
  grid-template-rows: repeat(2, 1fr);
  grid-auto-rows: 0; /* set height to 0 for autogenerated grid rows */
  overflow-y: hidden; /* hide grid items that overflow */
}

.wrapper > div {
  border: 2px solid #ffa94d;
  border-radius: 5px;
  background-color: #ffd8a8;
  padding: 1em;
  color: #d9480f;
}
<div class="wrapper">
  <div>One</div>
  <div>Two</div>
  <div>Three</div>
  <div>Four</div>
  <div>Five</div>
  <div>Six</div>
  <div>Seven</div>
  <div>Eight</div>
  <div>Nine</div>
  <div>Ten</div>
</div>

关于html - 如何隐藏隐式网格行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48692455/

相关文章:

CSS 垂直对齐和中断文本

html - 列不会与 Rails 中的行中间对齐

javascript - jQuery 动态删除表行

css - 使用网格模板区域时需要网格自动行吗?

html - CSS - 使多个 child 成为最高 child 的高度

javascript - 没有图像或其他元素的 document.onload(仅 HTML)

python - 起始页上的 Django 注册表单,无需重定向到登录页

html - 具有任意列数且无需换行的网格容器

html - 如何使一个部分增长以包装 CSS 网格中的内容?

java - 我想使用 thymeleaf 包含到 html 文件中