You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何左侧网格(grid)的row-gap属性无法正常生效?

问题:左侧单列网格的row-gap属性未生效

我设置了两个并排的单列网格,二者HTML布局完全一致,CSS中为两个网格都配置了row-gap属性,但左侧网格的row-gap在网页中并未显示效果。

左侧网格row-gap未生效效果

代码片段

HTML

<div class="both-grids">
    <div class="show-grid-container">
        <div class="grid-item">show 1</div>
        <div class="grid-item">show 2</div>
        <div class="grid-item">show 3</div>
        <div class="grid-item">show 4</div>
        <div class="grid-item">show 5</div>
    </div>

    <div class="movie-grid-container">
        <div class="grid-item">movie 1</div>
        <div class="grid-item">movie 2</div>
        <div class="grid-item">movie 3</div>
        <div class="grid-item">movie 4</div>
        <div class="grid-item">movie 5</div>
    </div>
</div>

CSS

.both-grids {
    padding-left: 100px;
}

.show-grid-container, .movie-grid-container {
    display: inline-grid;
    grid-template-rows: 40px 200px 200px 200px 200px;
    row-gap: 40px;
}

.movie-grid-container {
    padding-left: 80px;
    
}

.show-grid-container, .movie-grid-container > div {
    background-color: black;
    padding-right: 80px;
    padding-left: 80px;
}

问题原因及解决办法

原因:最后一条CSS规则错误地将.show-grid-container网格容器本身,和.movie-grid-container的子元素放在了同一个选择器中。这导致左侧网格容器被直接设置了黑色背景和左右内边距,而网格的row-gap属于容器内部的间隙,容器的背景色会填充整个容器区域(包括间隙),所以视觉上看不到row-gap的效果。右侧网格正常是因为这条规则只作用于它的子元素,容器本身没有背景色覆盖间隙。

解决办法:拆分最后一条CSS规则,仅对两个网格的子元素设置背景色和内边距:

.show-grid-container > div, .movie-grid-container > div {
    background-color: black;
    padding-right: 80px;
    padding-left: 80px;
}

修改后,左侧网格容器的背景不再覆盖row-gap区域,就能正常显示设置的40px行间距。

内容的提问来源于stack exchange,提问作者rakiyah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 06:45:45