如何在 CSS Grid 中防止子元素撑大父容器?

如何在 css grid 中防止子元素撑大父容器?

通过css grid避免父容器被撑大

在使用css grid布局时,有时可能希望阻止子元素撑大其父容器。这种情况通常发生在存在超出父容器尺寸的子元素时。

为了保持网格生成的单元格尺寸并隐藏溢出内容,可以采用以下步骤:

  1. 在网格容器元素上添加 grid-auto-flow: dense; 属性:这将确保网格自动放置网格项,而不会在网格容器和最后一个网格项之间添加空间。
  2. 在包裹溢出内容的子元素上添加 overflow: hidden; 属性:这将隐藏超出子元素尺寸的内容。

示例:

<div class="app">
    <div class="container">
        <div class="box">
            <div>1</div>
            <!-- ...假设这里有一百个 div -->
            <div>100</div>
        </div>
        <div></div>
    </div>
</div>
.app {
    width: 100vw;
    height: 100vh;
    display: grid;
    grid-template-rows: 1fr 10fr;
    gap: 2vh;
}

.container {
    width: 100%;
    height: 100%;
    background-color: aquamarine;
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-auto-flow: dense;
    gap: 2vh;
    overflow: hidden;
}

.box {
    overflow: hidden;
}

这样,包裹100个div的容器就不会撑大其父容器,溢出内容也会被隐藏。需要注意的是,包裹超出单元格尺寸子元素的容器也需要应用 overflow: hidden; 才能正确隐藏溢出内容。

以上就是如何在 CSS Grid 中防止子元素撑大父容器?的详细内容,更多请关注其它相关文章!