IOS safari flex布局bug?
IOS safari下使用flex布局的时候,如果使用display:flex,例如
html,
body {
height: 100%;
padding: 0;
margin: 0;
}
.wrapper {
display: flex;
height: 100%;
flex-direction: column;
}
.header {
height: 50px;
line-height: 50px;
border-bottom: solid 1px #ccc;
flex: 0;
}
.body {
flex: 1;
}
<div class="wrapper">
<div class="header">
头部
</div>
<div class="body">
身体
</div>
</div>
<script>
setTimeout(function() {
//如果改变了header高度
document.querySelector('.header').style.paddingTop = '50px'
}, 300)
</script>
如果改变了header高度,safari会出现滚动条,就像没有重新进行弹性计算一样。
但使用-webkit-box这种老式的标准并没有出现问题,在桌面各个现代浏览器均没有这种情况发生。
这是个bug吗?还是说我遗漏了什么?
测试环境:ios10
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在Safari试了下,缩写形式都不会重新计算布局(console中尝试element.style.flex='xxx', 不会生效),不要用缩写的形式
flex: 1;
改成
flex-grow: 1; 就行了