css - 仅滚动模态
问题描述
我制作了一个具有设定高度和宽度的模态。
当我单击按钮打开 Modal 时,标签.modal-open
中添加了一个新类 ( ) 。BODY
现在BODY
无法滚动。这就是我想要的,没有问题。
.modal-open {
overflow: hidden;
}
我现在想要做的是我无法弄清楚的事情。
我想阻止正文滚动并且不height
为模态设置属性,所以我可以在没有Y
滚动的情况下滚动模态的内容。像这样:
我可以做些什么来滚动模态的整个内容并且不卡住?
这是我的 CSS Modal 类:
.my-modal {
background-color: $color-ink;
position: fixed;
width: 100vw;
height: 100vh;
top: 0;
left: 0;
&__content {
position: fixed;
// overflow-y: scroll;
top: 20%;
left: 50vw;
transform: translateX(-50%);
border-radius: 5px;
max-width: 60rem;
// height: 50vh;
}
}
解决方案
如果不查看其余代码,很难确定。但是假设 Content 元素是 INSIDE ,my-modal
您应该使用position: absolute
而不是固定的内部元素。
固定位置会产生奇怪的效果,因为它以绝对位置没有的方式与身体联系在一起。绝对引用堆栈中下一个显式定位的父元素,因此您的位置应保持不变。
在你这样做之后,height
内容overflow-y
应该会产生你所期望的效果。
推荐阅读
- java - 如何正确嵌套循环
- xml - 动态递归 xslt 从另一个 XML 更新一个 XML
- c# - 如何关闭下拉列表所需的消息?
- javascript - javascript:array.length 评估为未定义
- html - 参数化 HTML 报告中的弹出窗口 RMarkdown
- node.js - 响应中的不稳定行为 express + next + 对并发请求做出反应
- reactjs - 如果我不使用它们,为什么它会在反应生命周期方法中出错?
- entity-framework - 更新 EF Core 上下文中的特定实体条目
- python - 错误实用程序:python 的线程标准输出编写器中未捕获的异常
- dynamic - 我可以在 robots.txt 中引用动态生成的站点地图吗?