fox浏览器兼容flexbox问题

背景:在项自测过程中发现的问题,ffox浏览器在展开左侧数据树时,会把右侧数据区也拉伸开来,这是表象。

分析:

1.计算一下右侧数据区的clientHeight高度,是正确的,左侧元数据区域,会随着子组件内部树的拉伸越来越高,但clientHeight到一定值就不变了,和右侧相等。

2.经过自行计算发现,ffox在计算的时候,没有算上层的工具栏height。初始的时候,左侧右侧clientHeight相同,树的展开,左侧就忽略了工具栏的height,这太奇怪了。

3.针对奇怪的现象,需要最小化demo看下是什么原因,因此上面这些都是废话,看下面的内容。


Demo链接:https://jsfiddle.net/9817e2yv/5/  (不能访问的同学,自行翻墙操作)

问题描述:chrome滚动显示正确,在红色区域,在ffox环境,滚动条显示的是整体区域的,如何解决该问题?

chrome效果: ffox效果:

必备知识:需要熟悉了解Flex布局的有哪些属性,以及各自的作用(自行百度)

解决办法,经过大家的讨论,给出四种有效办法,各有优缺点:

1.https://jsfiddle.net/9817e2yv/6/  增加一个具有高度的div撑开,占位。<div class="normal"></div>

2.https://jsfiddle.net/9817e2yv/7/  使用绝对定位,让左侧脱离文档流,但需要右侧增加margin-left属性。

3.https://jsfiddle.net/9817e2yv/8/  上种办法的优化,增加一个固定宽度的div占位,去除右侧的margin-left值,如果需要隐藏左侧,只要同时处理两个div就可以,不需要右侧变更。

4.https://jsfiddle.net/9817e2yv/12/  结合overflow:hidden和flex 1 0 0 处理,控制外层的显示,形成BFC。如果内部需要显示,可以内部设置overflow:visible。

各有优缺点,结合项目实际情况取舍。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值