ie11下页面显示不正常,hight获取不正确

本文详细介绍了在IE11浏览器下网站显示异常的问题,发现页面呈现前元素高度未初始化导致获取高度不正确。通过将调整高度的代码放入onresize事件中解决了此问题。

在前一阵子,公司的网站需要兼容ie11。在刚开始的时候,网站在ie11浏览器下显示会有异常,本应该是填充满整个浏览器的页面,现在高度只有250左右。
刚开始以为是html元素的css设置不对,一直在改样式,添加了各种height=100%都不能解决问题,后来使用代码获取元素的高度,发现这个高度一直是250,但是只要页面呈现出来后,再来获取高度,高度就变成正常了。然后我尝试着在onload事件里面添加获取高度的代码,依旧是250,看来这个还是无法解决问题。
在百度上找了很久,发现有个事件onresize,是窗口大小发生变化的时候调用的,于是我把调整高度的代码放到这个事件中,页面就可以显示了。
ie11估计是在页面呈现出来之前,元素的高度应该是还没初始化,导致获取到的高度都是默认值(250)。在呈现出来的时候,窗口的高度改变了,就触发了onresize事件,所以要获取正确的高度需要等到页面呈现出来之后。

在 WPF、UWP 和 Xamarin 中,设置弹出窗口(Popup)的高度以匹配页面高度可以通过同的方式实现。以下分别针对这三种平台提供了解决方案,并结合引用内容进行了说明。 ### WPF 在 WPF 中,可以通过绑定 `Popup` 的 `Height` 属性到父窗口的 `ActualHeight` 来实现自适应高度[^1]。此外,也可以通过代码动态设置 `Popup` 的高度。 ```xml <Popup x:Name="myPopup" Height="{Binding RelativeSource={RelativeSource AncestorType=Window}, Path=ActualHeight}"> <!-- Popup 内容 --> </Popup> ``` 如果需要更精确控制,可以在代码后台中手动设置: ```csharp myPopup.Height = SystemParameters.PrimaryScreenHeight; ``` ### UWP 在 UWP 中,可以通过获取当前窗口的高度并将其赋给 `Popup` 的 `Height` 属性来实现[^2]。 ```csharp var view = Windows.UI.ViewManagement.ApplicationView.GetForCurrentView(); myPopup.Height = view.VisibleBounds.Height; ``` ### Xamarin.Forms Xamarin.Forms 中没有原生的 `Popup` 控件,但可以使用第三方库如 [Rg.Plugins.Popup](https://github.com/rotorgames/Rg.Plugins.Popup) 实现类似功能。要设置 `Popup` 高度为页面高度,可以在页面构造函数或 `OnAppearing` 方法中进行设置: ```csharp public MyPopupPage() { InitializeComponent(); this.HeightRequest = App.Current.MainPage.Height; } ``` 或者使用数据绑定: ```xml <ContentPage xmlns:rg="http://xamarin.com/schemas/2020/Rg.Plugins.Popup" rg:Popup.Height="{Binding Source={x:Reference Name=MainPage}, Path=Height}"> <!-- 页面内容 --> </ContentPage> ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值