我使用grid布局在z方向上堆叠元素.出于某种原因,如果其中一个子元素非常宽,它可能会突出到栅格元素之外:

#z-stack {
    display: grid;
    border: 5px solid green;
}
#z-stack > * {
    grid-column-start: 1;
    grid-row-start: 1;
}

#wide {
    width: 111vw;
    background: orange;
}

#tall {
    height: 111vh;
}
<div id="z-stack">
    <div id="wide"></div>
    <div id="tall"></div>
</div>

您可以看到绿色边框并不完全围绕橙色元素,这意味着子元素比父元素宽.如何才能使父元素变得足够大,以包含其所有子元素?

推荐答案

可以将栅格元素的min-width属性设置为min-width: fit-content.

#z-stack {
    display: grid;
    border: 5px solid green;
    min-width: fit-content;
}
#z-stack > * {
    grid-column-start: 1;
    grid-row-start: 1;
}

#wide {
    width: 111vw;
    background: orange;
}

#tall {
    height: 111vh;
}
<div id="z-stack">
    <div id="wide"></div>
    <div id="tall"></div>
</div>

Html相关问答推荐

将多个内联元素置于中心,而无需访问父级上的CSS

在css嵌套 Select 器中,尾随的`&;‘是什么意思?

首字下沉非字母字符

如何修复与导航栏重叠的css网格?

在Quarto/Discrealjs演示文稿中只增加一个列表的填充

水平卷轴的内容保持堆叠

文本幻灯片显示动画

将精选选项的价格合并为一个价格HTML、PHP和JQuery

Chatbox底部显示新消息,并向上推送旧消息

带有排序元素的 CSS 网格

无法在 CSS 中将 h1 标签居中

如何从 div 内的属性中提取 href 和文本

如何在Rmarkdown中添加千位分隔符?

如何调整底部有 SVG 的元素的高度,使其在所有宽度上看起来都不错?

用于表行组标题的正确 HTML 标记是什么?

如何从另一个 ng-template 获取输入值