如何消除 CSS 网格第二列中的间隙?

How to remove gap in second column of a CSS grid?

我在简单的 CSS 专栏中遇到困难。这是它的样子:

HTML:

<div class="catalogue-container">

    <div class="catalogue-item">
        <img src="blabla.jpg" />
    </div>

    <div class="catalogue-item">
        <img src="blabla2.jpg" />
    </div>

    <div class="catalogue-item">
        <img src="blabla3.jpg" />
    </div>

    <div class="catalogue-item">
        <img src="blabl4.jpg" />
    </div>

</div>

CSS:

.catalogue-container {
    -webkit-column-count: 2;
    -webkit-column-gap: 7px;
    column-count: 2;
    column-gap: 7px;
    width: 100%;
    margin: 0 auto;
}

.catalogue-item {
    margin-bottom: 7px;
    padding: 0;
}

我的参考:https://codepen.io/gsarig/pen/iqhfl

我想消除间隙并将项目从第二列移到顶部。

我是不是遗漏了什么?

可能值得研究 flexbox:

.catalogue-container {
   display: flex;
   flex-direction:column;
}

https://css-tricks.com/snippets/css/a-guide-to-flexbox/

问题可能是由于使用列时div换行引起的,您可以尝试将display: inline-block添加到.catalogue-item来避免它。

尝试以下有无 display: inline-block 的情况:

.catalogue-container {
  -webkit-column-count: 2;
  -webkit-column-gap: 7px;
  column-count: 2;
  column-gap: 7px;
  width: 100%;
  margin: 0 auto;
}

.catalogue-item {
  margin-bottom: 7px;
  padding: 0;
  border:1px solid black;
  display: inline-block;
  width: 100%;
}
<div class="catalogue-container">

  <div class="catalogue-item">
    <img src="blabla.jpg" style="height: 300px; display: block;"/>
  </div>

  <div class="catalogue-item">
    <img src="blabla2.jpg" style="height: 190px; display: block;"/>
  </div>

  <div class="catalogue-item">
    <img src="blabla3.jpg" style="height: 200px; display: block;"/>
  </div>

  <div class="catalogue-item">
    <img src="blabl4.jpg" style="height: 250px; display: block;"/>
  </div>

</div>