移动端兼容性问题:flex子元素absolute定位失效

2,933 阅读1分钟

事情是这样的,在写移动端页面时有一个卡片模块,类似这样的

上面两行是文字部分,下面是个按钮,于是我当然是用了flex布局, flex-direction: column,align-items: center,为了预防上面两行文本部分不存在,于是我想把这个按钮用绝对定位固定在最下面,这样即使数据发生异常也不会影响整体布局,于是我又给这个按钮元素加上了position:absolute,bottom: XXpx浏览器上显示正常,在模拟器上也显示正常,用安卓和苹果手机简单看下了也没什么问题,不过兼容性测试的时候发现问题来了,在iPhone 5s 和iPhone6plus低版本系统中按钮跑到最左边来了

这是为什么呢,查了下发现绝对定位和flex布局是有冲突的,此处虽然我用了flex的居中布局,但是我又用了绝对定位,于是居中效果则失效了,在高版本的记性中虽然flexabsolute已经做到了兼容,但是在低版本机型中还是无法同时生效的,所以保险起见,还是给按钮加上left属性吧,这样就能保证所有机型上能正常显示啦~