如何删除高度为 CSS 的网格的间隙:0 元素

How to remove gap for CSS Grid with height: 0 element

我最近开始使用 CSS 网格。 我需要将一个空的 div 元素设置为网格元素之一,以便我可以在需要时按 javascript 插入内容。 问题是 gap 被应用到这个空的元素并且 height: 0。如何避免仅当 CSS 网格的元素为空时才应用间隙。

<div class="container"> <!-- gap: 20px; -->
    <div class="grid-element--1">
        <h2>title</h2>
        <p>Text Text Text Text Text Text Text Text Text Text </p>
    </div>
    <div class="grid-element--2">
        <h2>title</h2>
        <p>Text Text Text Text Text Text Text Text Text Text </p>
    </div>
    
    <div class="grid-element--3"></div> <!-- Need to appliy gap: 20px only when this element is not empty -->
    
    <div class="grid-element--4">
        <h2>title</h2>
        <p>Text Text Text Text Text Text Text Text Text Text </p>
    </div>
</div>

间隙 属性 应用于容器。您不能为子项 div 设置特定的间隙,因为它是其父项的 属性。

我的建议是用 display:none 属性 设置空 div。一旦你用 javascript 向它注入内容,将它的显示设置为“块”、“弹性”或它在可见时使用的任何显示 属性。

另一种解决方案是用子项上的边距或填充底部替换“间隙”。由于这是一个 属性 个子组件,您将能够在 div 中创建相同的异常。