隐藏CSS Grid中的列

时间:2018-01-24 23:22:22

标签: css css3 css-grid

我对css网格很新,我试图找出如何让一个专栏完全消失并强制其他人进行堆叠。

我基本上希望下面的红色划线完全消失,然后将网格中的所有其他内容堆叠成几行。

enter image description here

使用下面的代码,我希望block 4消失。然后我想要块1/2/3/5/6堆叠。



.wrapper {
  display: grid;
  grid-template-columns: repeat(3, minmax(155px, 1fr)) 1fr;
  grid-gap: 10px;
  padding: 0.5rem;
}

<div class="wrapper">
  <div>
    Block 1
  </div>
  <div>
    Block 2
  </div>
  <div>
    Block 3
  </div>
  <div>
    Block 4
  </div>
  <div>
    Block 5
  </div>
  <div>
    Block 6
  </div>
</div>
&#13;
&#13;
&#13;

它的编码:

https://codepen.io/allencoded/pen/goNYwv

2 个答案:

答案 0 :(得分:2)

确保每行只能有四个项目:

grid-template-columns: repeat(auto-fill, minmax(20%, 1fr));
grid-gap: 10px;

每件商品的最小宽度为20%,并且网格间隙(任意长度),每行不得超过四个。

然后,隐藏每一行中的第四项:

div:nth-child(4) { visibility: hidden; }

https://codepen.io/anon/pen/LeKzzx

.wrapper {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(20%, 1fr));
  grid-gap: 10px;
  padding: 0.5rem;
}

.wrapper > div:nth-child(4) {
  visibility: hidden;
}

.wrapper > div {
  background-color: lightgreen;
}
<div class="wrapper">
  <div>Block 1</div>
  <div>Block 2</div>
  <div>Block 3</div>
  <div>Block 4</div>
  <div>Block 5</div>
  <div>Block 6</div>
</div>

答案 1 :(得分:-2)

grid-template-columns: repeat(3, minmax(155px, 1fr)) 0;

一个人看不到宽度为0的东西。

例如,如果您希望在悬停时看到它,只需重新定义grid-template-columns。

.wrapper:hover {
   grid-template-columns: repeat(3, minmax(155px, 1fr)) 1kebab; // 1 kebab being your new width.
}