如何防止行 CSS 网格重叠?

How do I prevent overlap of rows CSS grid?

我刚开始使用 css 网格。我正在尝试在网络浏览器中阅读 pdf,其中每个页面都呈现在一个新的 canvas 元素中。 Canvas 元素根据 pdf 文件中的页数动态添加。我正在使用网格显示,但不同的页面(canvas 元素)出现重叠,如下所示: overlapped messed up rows

这是我的 HTML:

<div class="pdfHolder" id="pdfHolder">
    <canvas id="cvsPg1" class="canvasPage" height="1052" width="743"></canvas>
    <canvas id="cvsPg2" class="canvasPage" height="1052" width="743"></canvas>
    <canvas id="cvsPg3" class="canvasPage" height="1052" width="743"></canvas>
    <canvas id="cvsPg4" class="canvasPage" height="1052" width="743"></canvas>
    <canvas id="cvsPg5" class="canvasPage" height="1052" width="743"></canvas>
    <canvas id="cvsPg6" class="canvasPage" height="1052" width="743"></canvas>
    <canvas id="cvsPg7" class="canvasPage" height="1052" width="743"></canvas>
    <canvas id="cvsPg8" class="canvasPage" height="1052" width="743"></canvas>
</div>

这里是对应的CSS:

.pdfHolder {
    display: grid;
    min-width: 500px;
    background: #eee;
    padding: 10px;
    overflow: scroll;
    border: 1px solid black;
    margin-left: -1px;
}

.canvasPage {
    border: 1px solid black;
}

如果我不使用 pdfHolder 元素的网格显示,结果很好(一个接一个地滚动 8 canvas 个元素的列表)。 如果我添加 grid-auto-rows: 1100px; 即显式设置行高,它就可以工作。但是现在我看到 canvas 元素之间有很大的差距:big gap

我怀疑它是否每次都能正常工作(例如在不同的屏幕上等,或者与另一个页面大小不同的 pdf 等)。有没有办法根据 canvas 高度隐式设置行高?

您的 canvas 有 height="1052" 您尝试使用 grid-auto-rows: 1052px;grid-auto-rows: max-content;gap: 0;