内容不设高度的前提下父元素铺满页面的height:100vh与window.innerWidth

问题场景:实现在不设置子内容高度的前提下父元素铺满页面
 

1.​​​​​​height:100vh与height:100%

        vh就是当前屏幕可见高度的1%,也就是说 height:100vh == height:100%;

但是当元素没有内容时候,设置height:100%,该元素不会被撑开,此时高度为0,

但是设置height:100vh,该元素会被撑开屏幕高度一致;

2.具体使用场景

.login-container {
    height: 100%;//此时height不生效
    width: 100%;
    background: #eee url(../../assets/images/loginbg.png) no-repeat;
}

如图:

使用100vh

.login-container {
    height: 100vh;
    width: 100%;
    background: #eee url(../../assets/images/loginbg.png) no-repeat;
}

如图:

3. 需要注意在移动前端上避免使用100vh单位

        Chrome和Safari浏览器具有“帮助”功能,其中地址栏有时可见,有时隐藏,从而改变了视口的可见大小。 这些浏览器没有将100vh高度调整为视口高度变化时屏幕的可见部分,而是将100vh设置为浏览器的高度,并隐藏了地址栏。 结果是,当地址栏可见时,屏幕的底部将被切除。

如下图所示: 

        当显示地址栏时,由于移动浏览器错误地将100vh设置为屏幕高度而没有显示地址栏,因此屏幕底部被切断。 图中应隐藏在屏幕底部的按钮。 更糟糕的是,当用户首次访问移动设备上的网站时,地址栏将在顶部可见。

4.更好的更改视窗高度方法是window.innerHeight

        如果地址栏可见,则window.innerHeight将为全屏的高度。 如果地址栏是隐藏的,则window.innerHeight将是屏幕上可见部分的高度 。

 var windowheight = window.innerHeight;//同样能达到效果
 return <div className="login-container" style={{ height: windowheight}}>

5.转载自:

        关于height:100%和height:100vh的区别_朽木自雕的博客-CSDN博客_100vh

        在移动前端上避免使用100vh单位

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Marry梅里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值