How to hide implicit grid rows?

Deadly 提交于 2019-11-29 14:48:37

You can set height of auto generated row to 0px using grid-auto-rows: 0; and hide them using overflow-y: hidden. Demo:

.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>

You can't prevent implicit rows from being created (spec reference), but you can set a height on the container and hide the overflow.

.wrapper {
  display: grid;
  grid-template-columns: repeat(auto-fill, 200px);
  max-height: 110px;
  overflow: hidden;
  border: 2px solid #f76707;
  background-color: #fff4e6;
  
}
.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>

jsFiddle demo

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!