gpt4 book ai didi

css - 如何创建可变高度的可滚动对话框(弹出窗口)作为 css 中的叠加层

转载 作者:行者123 更新时间:2023-11-28 03:55:35 25 4
gpt4 key购买 nike

我看过很多尝试解决这个问题的例子,但我似乎找不到一个完全有效的例子。我正在尝试在屏幕中央创建一个对话框作为叠加层。示例 1 只要对话框适合查看者的屏幕高度。在示例 2 中固定位置后,将不允许在增加的高度上滚动。如果我将覆盖位置更改为绝对位置并将对话框更改为相对位置,它会解决高度/滚动问题,除非我向下 ScrollView 之外的部分不是覆盖示例 3 的一部分。

示例 1 https://jsfiddle.net/jdjmmzd6/1/

示例 2 https://jsfiddle.net/jdjmmzd6/2/ (叠加高度改为500)

示例 3 https://jsfiddle.net/jdjmmzd6/ (覆盖绝对和对话框相对)

示例 1 如下所示:

<html>

<style>

.overlay {
position:fixed;
z-index:9999;
background-color:rgba(0,0,0,0.5);
text-align:center;
width:100%;
height:100%;
top:0px;
left:0px;
}

.popup {
margin:0;
position:absolute;
top:50%;
left:50%;
-ms-transform:translate(-50%, -50%);
transform:translate(-50%, -50%);
background:#fff;
width:50%;
height:200px;
}

</style>

<body>
<div class="overlay">
<div class="popup">Hello World</div>
</div>
page<br>filler<br>page<br>filler<br>page<br>filler<br>
page<br>filler<br>page<br>filler<br>page<br>filler<br>
page<br>filler<br>page<br>filler<br>page<br>filler<br>
page<br>filler<br>page<br>filler<br>page<br>filler<br>
page<br>filler<br>page<br>filler<br>page<br>filler<br>
page<br>filler<br>page<br>filler<br>page<br>filler<br>
page<br>filler<br>page<br>filler<br>page<br>filler<br>
page<br>filler<br>page<br>filler<br>page<br>filler<br>
</body>

</html>

最佳答案

如果你想让对话框有自己的滚动,你需要为它设置一个容器。然后,您可以在具有滚动功能的容器上设置特定高度 (overflow-y: scroll),然后在内部 div 上设置更大的高度。这使您可以自定义它们可以在内部 div 中滚动的程度。

请注意,因为我们在原始对话框周围添加了容器,所以我们需要将您的定位逻辑移动到dialog-container。您的示例 1 非常适合定位,但您真正想知道的是如何使对话框可滚动。

这是 jsFiddle:https://jsfiddle.net/augburto/085k68pa/

内联代码示例

.overlay {
position:fixed;
z-index:9999;
background-color:rgba(0,0,0,0.5);
text-align:center;
width:100%;
height:100%;
top:0px;
left:0px;
}

.dialog {
height:500px;
}

.dialog-container {
posiiton: relative;
width:50%;
overflow-y: scroll;
height: 200px;
margin:0;
position:absolute;
top:50%;
left:50%;
-ms-transform:translate(-50%, -50%);
transform:translate(-50%, -50%);
background:#fff;
}
<body>
<div class="overlay">
<div class="dialog-container">
<div class="dialog">Hello World</div>
</div>
</div>
page<br>filler<br>page<br>filler<br>page<br>filler<br>
page<br>filler<br>page<br>filler<br>page<br>filler<br>
page<br>filler<br>page<br>filler<br>page<br>filler<br>
page<br>filler<br>page<br>filler<br>page<br>filler<br>
page<br>filler<br>page<br>filler<br>page<br>filler<br>
page<br>filler<br>page<br>filler<br>page<br>filler<br>
page<br>filler<br>page<br>filler<br>page<br>filler<br>
page<br>filler<br>page<br>filler<br>page<br>filler<br>
</body>

关于css - 如何创建可变高度的可滚动对话框(弹出窗口)作为 css 中的叠加层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43478664/

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