gpt4 book ai didi

css - 限制高度与页面底部的距离

转载 作者:技术小花猫 更新时间:2023-10-29 11:03:10 29 4
gpt4 key购买 nike

我有一个一侧有按钮的网络应用程序。当我单击其中一个按钮 *JavaScript magic* 时,它旁边会出现一个菜单。该脚本对定位或样式一无所知,它只是找到一个目标元素,然后在其中写入 HTML。

简而言之,我有一个相对于其父项定位的菜单(本例中为#pretty-target)。

<div class="container">
<button class="my-pretty-button">@</button>
<div class="menu-target" id="pretty-target"></div>
</div>

结果是这样的:

A floating menu next to a button

现在,当我降低页面高度时,我想限制此菜单的高度,具体取决于它与页面底部的距离。一个非常理想的结果看起来像这样:

The same menu but with its height magically limited

我知道最好的做法是拥有一个可滚动的页面主体,而不必担心此类元素的高度。但是,我的页面正文是一张 map ,因此任何滚动它的尝试都只会移动 map 。

我当然可以通过使用可滚动的叠加层来制作一些替代的东西,或者更好的是,通过使用媒体查询来选择更好的方法来显示这些菜单。但是,它们不会以这种方式显示。

简要说明:我有一个与页面无关的 div,我希望它的高度受页面高度限制。这是如何工作的(不使用 JS)?

最佳答案

如果您的目标是现代浏览器,您可以使用 calcvh实现你的目标。如果需要将按钮放置在屏幕中间,只需将.popupmax-height减去按钮的位置即可。

.wrapper {
position: absolute;
top: 80px; /*the position of your floating button*/
right: 50px;
}

.button {
display: block;
width: 50px;
padding: 10px;
float: right;
box-sizing: border-box;
text-align: center;
border: 1px solid red;
}

.popup {
position: absolute;
max-height: calc(100vh - 50px - 80px); /*modify the value to fit your needs, 80px is the position of your floating button*/
overflow-y: scroll;
width: 100px;
padding: 10px;
right: 55px;
top: 0;
border: 1px solid blue;
}
<div class="wrapper">
<span class="button">Star</span>
<div class="popup">
<p>Option 1</p>
<p>Option 2</p>
<p>Option 3</p>
<p>Option 4</p>
<p>Option 5</p>
<p>Option 6</p>
<p>Option 7</p>
<p>Option 8</p>
<p>Option 9</p>
</div>
</div>

关于css - 限制高度与页面底部的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45990219/

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