gpt4 book ai didi

html - 防止元素溢出容器

转载 作者:太空宇宙 更新时间:2023-11-04 06:51:19 25 4
gpt4 key购买 nike

我有以下结构,其中 .list 中名称 (.name) 的数量是动态的。我想要实现的是,当内容(取决于 .names 的 n 个)长于 .parent 的固定高度时,.children 都适合 .parent(继承高度)。空间不足将通过 .list 获得滚动条 (overflow:auto) 来解决。

高度继承适用于单个 child ,但当有两个或更多 child 时,我会遇到很大的问题。

enter image description here

JSFIDDLE HERE

HTML

<div id="grandparent">
<div id="parent">
<div id="list" class="children">

<div class="name">john</div>
<div class="name">mike</div>
<div class="name">jack</div>
<div class="name">terry</div>

</div>

<div id="footer" class="children">

<div>footer</div>

</div>
</div>
</div>

CSS

body, html {

margin: 0;
width: 100%;
height: 100%;

}

div {

box-sizing: border-box;

}

#grandparent {

background-color:yellow;
display:flex;
align-items:center;
width:100%;
height: 100%;
flex: 1;

}

.children, .children div {

padding: 5px;

}

.children {

max-height: inherit;

}

.children div {

width: 100%;
max-height: inherit;

}

#list {

overflow: auto;
padding-bottom:0;

}

#footer {

padding-top:0;

}

.name {

background-color: green;

}

#footer div {

background-color: pink;

}

#parent {

background-color: blue;
margin: 0 auto;
max-height: 100px;

}

附言抱歉代码困惑,我只是在测试不同的选项。

最佳答案

将此添加到您的代码中:

#parent {
display: flex;
flex-direction: column;
}

body,
html {
margin: 0;
width: 100%;
height: 100%;
}

div {
box-sizing: border-box;
}

#grandparent {
background-color: yellow;
display: flex;
align-items: center;
width: 100%;
height: 100%;
flex: 1;
}

.children,
.children div {
padding: 5px;
}

.children {
max-height: inherit;
}

.children div {
width: 100%;
max-height: inherit;
}

#list {
overflow: auto;
padding-bottom: 0;
}

#footer {
padding-top: 0;
}

.name {
background-color: green;
}

#footer div {
background-color: pink;
}

#parent {
background-color: blue;
margin: 0 auto;
max-height: 100px;

/* new */
display: flex;
flex-direction: column;
}
<div id="grandparent">
<div id="parent">
<div id="list" class="children">
<div class="name">john</div>
<div class="name">mike</div>
<div class="name">jack</div>
<div class="name">terry</div>
</div>
<div id="footer" class="children">
<div>footer</div>
</div>
</div>
</div>

jsFiddle demo

因为 flex 元素设置为 flex-shrink: 1默认情况下,它们会减小尺寸以免溢出容器。

关于html - 防止元素溢出容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52844411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com