1.背景描述 原项目几条业务线共用了一个模块组件其中该组件用了margin-right:-100%(撑开了宽度),业务线分离将此模块copy了一份,上线后发现ios可以左右滑动(h5和安卓正常不可滑动),查看半天也没定位到,后经请教将body的overflow:hidden 属性关闭在h5上复现了,想到应该是ios对于该属性的兼容问题
后经查阅:
正常来说给body元素增加一个overflow-x: hidden;就能够解决问题了,但是苹果机确没有用。感觉苹果机看起来解析<meta name="viewport">标记的浏览器只是忽略了html、body标签上的overflow属性。
因此最好是在内部在创建一个div将整个视口内容包起来, 并将其overflow-x:hidden应用于该div上,问题就能解决。
好奇原项目用的同一个组件为啥没有这个bug,一看原代码果然给组件外层div也加了overflow-x: hidden;至此解决办法两个:一个删掉margin-right,一个给div也加了overflow-x: hidden
2.font-weight:700 对于加粗最好使用bold 有的浏览器不兼容
3.flex:1 分配剩余宽高 加上width:0 或height:0 有的浏览器不兼容不设置width:0或 height:0时无法自动分配剩余宽高
真实案例持续更新