弹出的对话框不能实现滚动的问题

作者在写前端弹出框时遇到窗口过大、屏幕不能自动滚动的问题。经研究发现,对话框样式中使用position的fixed属性导致多余部分显示不了。最后将position属性改成absolute解决问题,还表示若必须用fixed也提供了一种解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

今天写前端弹出框的时候遇到的窗口过大,屏幕不能自动滚动的问题。在平时我们写页面的时候,当页面长度超过当前屏幕长度后,会自动向下延伸并且可以滚动。但今天我遇到的弹窗就很奇怪。后来我仔细研究了一下,并做了一个demo做对比,才发现其中的问题所在。

首先,在我的弹出的对话框中,分为两个部分,分别是dialogBg和dialog。

<div class="diglogBg">
    <div class="dialog">
        <div class="lilili"></div>
	<div class="lilili"></div>
    </div>
</div>

下面分别是两个部分的样式:

                        .dialogBg{
				position:fixed ;
				width: 100vw;
				height: 100vh;
				overflow: auto;
			}
			.dialog{
				position: fixed;
				width: 100px;
				background: red;
				overflow: auto;
			}
			.lilili{
				width: 20px;
				height: 1000px;
				background: green;
			}

 

按照以上运行,是弹出窗口的多余部分是显示不了的。原因是由于在对话框的样式中使用了position中的fixed属性。具体原因我也没太弄清楚,去查了W3C的文档,看到里面的一句话对fixed解释是,相对于浏览器窗口进行定位。

有兴趣的可以自己查一下是什么原因,别忘记回来告诉我大笑

最后我是把position属性改成absolute解决的。如果必须使用fixed的话。

这里提供一种解决方案。

.dialog {  
    top: 0;  
    bottom:0;  
    position:fixed;  
    overflow-y:scroll;  
    overflow-x:hidden;  
}  

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值