CSS如何只显示1行并隐藏其他行?

sco*_*sco 9 css frontend grid-layout reactjs css-grid

我的页面顶部有一个导航。其中我有 5 家不同公司的 5 只市场股票。我想以全宽显示 5,但随着窗口变小,我基本上想要的行为是切断溢出的窗口,并调整剩余窗口的大小以填充导航容器(所以假设在某些时候它只会显示 3 只股票并隐藏其他股票)。这是现在的代码:

.stocks-container {
  display: grid;
  grid-template-columns: repeat(auto-fit, 150px);
  grid-template-rows:1fr;
  grid-auto-rows: 0;
  overflow-y: hidden;
  justify-content: space-between;
  width: 75%;
  font-size: 11px;
  overflow-y: hidden;
}
Run Code Online (Sandbox Code Playgroud)

目前这几乎就是我所需要的。问题是,现在溢出的库存项目(基本上应该创建一个新行)被挤在第一行的顶部。同样,我不希望他们创建新行或可滚动。我只是根本不想让他们出现。有任何想法吗?

Rou*_*ica 4

您可以使用 CSSmax-height@media查询来实现此效果:

  • 给出与单个网格行的高度相对应的.stocks-containera并声明max-heightoverflow: hidden

这确保现在只有一行可见(即没有行的垂直换行)。

  • 现在添加一系列短的断点媒体查询以重置grid-template-columns为视口宽度的百分比。

这使得那些仍然可见的网格框能够填充为 保留的整个水平宽度.stocks-container

工作示例:

.stocks-container {
display: grid;
grid-template-columns: repeat(5, calc(20% - 6px));
grid-template-rows: 92px;
grid-column-gap: 6px;
grid-row-gap: 6px;
max-height: 92px;
font-size: 11px;
overflow: hidden;
}

.stocks-container div {
height: 80px;
text-align: center;
border: 1px solid rgb(127, 127, 127);
}

@media only screen and (max-width: 900px) {

    .stocks-container {
    grid-template-columns: repeat(4, calc(25% - 6px));
    }
}

@media only screen and (max-width: 750px) {

    .stocks-container {
    grid-template-columns: repeat(3, calc(33.33% - 6px));
    }
}

@media only screen and (max-width: 600px) {

    .stocks-container {
    grid-template-columns: repeat(3, calc(50% - 6px));
    }
}
Run Code Online (Sandbox Code Playgroud)
<div class="stocks-container">

<div>
<h2>Company 1</h2>
<p>Company Stock</p>
</div>

<div>
<h2>Company 2</h2>
<p>Company Stock</p>
</div>

<div>
<h2>Company 3</h2>
<p>Company Stock</p>
</div>

<div>
<h2>Company 4</h2>
<p>Company Stock</p>
</div>

<div>
<h2>Company 5</h2>
<p>Company Stock</p>
</div>

</div>
Run Code Online (Sandbox Code Playgroud)