如何隐藏隐式网格行?
How to hide implicit grid rows?
下面的代码片段使用 CSS 网格来增加宽容器的列数。对于窄容器(例如取消注释 width: 80vw
或调整示例大小),它会添加隐式行(在 grid-template-rows
属性 中只有 2 个是显式的)。我怎样才能只保留 2 行,使 "overflow" 隐藏 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>
您无法阻止创建隐式行(spec reference),但您可以在容器上设置高度并隐藏溢出。
.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
您可以使用 grid-auto-rows: 0;
将自动生成行的高度设置为 0px
,并使用 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>
下面的代码片段使用 CSS 网格来增加宽容器的列数。对于窄容器(例如取消注释 width: 80vw
或调整示例大小),它会添加隐式行(在 grid-template-rows
属性 中只有 2 个是显式的)。我怎样才能只保留 2 行,使 "overflow" 隐藏 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>
您无法阻止创建隐式行(spec reference),但您可以在容器上设置高度并隐藏溢出。
.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
您可以使用 grid-auto-rows: 0;
将自动生成行的高度设置为 0px
,并使用 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>