gpt4 book ai didi

css - 具有持久边框的 Html 可滚动 div,紧紧包围可见的滚动内容大小

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

假设我们有一些列表容器(下面代码中的 div),我们需要能够调整它在其上可见的视口(viewport)的大小。我们需要在列表内容周围添加一些边框(在我的示例中边框为“棕色”)。那么问题来了。

如果列表内容在不滚动的情况下适合视口(viewport),那么边框必须紧紧包围列表内容(所以我不能将边框设置为 div“Column Left”,因为我不需要可能包含列表项的整个大区域周围的边框)。

Nice

如果视口(viewport)很小并且列表内容要滚动,那么边框必须保持不变(在我的垂直列表示例中,我在容器的顶部和底部错过了它)。

Not nice

这对于 GUI 来说是很常见的行为。

.bkgnd {
position: absolute;
background-color: grey;
top: 0;
bottom: 0;
right: 0;
left: 0;
}

.Column{
overflow: auto;
position: absolute;
}

.Left{
width: 460px;
top: 100px;
bottom: 70px;
left: 17px;
}

.ListItem{
background-color: yellow;
margin: 5px 0 0 0;
}

.ListItem:first-child{
margin: 0;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />


</head>

<body>
<div class="bkgnd">
<div class="Column Left">
<div style="padding: 5px; background-color: brown;">
<div class="ListItem">item</div><div class="ListItem">item</div><div class="ListItem">item</div>
<div class="ListItem">item</div><div class="ListItem">item</div><div class="ListItem">item</div>
<div class="ListItem">item</div><div class="ListItem">item</div><div class="ListItem">item</div>
<div class="ListItem">item</div><div class="ListItem">item</div><div class="ListItem">item</div>
<div class="ListItem">item</div><div class="ListItem">item</div><div class="ListItem">item</div>
<div class="ListItem">item</div><div class="ListItem">item</div><div class="ListItem">item</div>
</div>
</div>
</div>
</body>

最佳答案

如果您为列表项周围的分隔线提供一个 id 并使用其余 CSS 设置上面的样式,效果会更好。这对您的情况不起作用有什么原因吗?

在 HTML 中:

<div id="testing">
<div class="ListItem">item</div><div class="ListItem">item</div><div class="ListItem">item</div>
<div class="ListItem">item</div><div class="ListItem">item</div><div class="ListItem">item</div>
<div class="ListItem">item</div><div class="ListItem">item</div><div class="ListItem">item</div>
<div class="ListItem">item</div><div class="ListItem">item</div><div class="ListItem">item</div>
<div class="ListItem">item</div><div class="ListItem">item</div><div class="ListItem">item</div>
<div class="ListItem">item</div><div class="ListItem">item</div><div class="ListItem">item</div>
</div>

在 CSS 中:

#testing {
border: 5px solid brown;
background-color: brown;
overflow: auto;
position: absolute;
width: 450px;
max-height: 100%;
top: 0px;
left: 0px;
}

然后更改 .Column 类属性,使溢出可见。

.Column{
overflow: visible;
position: absolute;
}

旁注:如果你想制作一个响应式网页,你应该尽可能多地使用百分比而不是像素。另外,您更喜欢使用 div 元素而不是列表元素有什么原因吗?

关于css - 具有持久边框的 Html 可滚动 div,紧紧包围可见的滚动内容大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43269680/

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