安卓和IOS web开发时遇到的bug,总结两个设备展示和处理上的不同。
安卓机上没有平滑的效果,IOS上设置 -webkit-overflow-scrolling: touch; 即可
-webkit-backdrop-filter: blur(5px); iphone上是让背景模糊,安卓不支持 粘性布局:position: sticky; 只苹果支持;
安卓差1像素 感觉靠上 只有几个尺寸比较接近居中 line-height: 1.6; font-size为单数 安卓对小数点的解析不敏感,
例如 .3px 在苹果上会有差异,但在安卓上要1px的差异才会展现
1.3px == 1px; 1.7px == 1px;
解决居中:利用 .3px/.2px 在安卓和苹果上的差异
字体(最好单数)line-height:1; padding-top: + .3px; padding-bottom: -.3px; 在安卓上明显差出一个像素,
比如 根像素20px, 0.21rem = 4.2px; 安卓上相当于5px;
差异:键盘弹出,安卓机相当于覆盖层,苹果会改窗口的高度
导致问题:当页面内容少,不出现滚动,位置相对靠下的输入元素,在安卓机上会被弹出的键盘挡住,而且页面无法滚动,但苹果不会,
解决:输入元素靠上放置,或者输入时动态扩充页面内容,让页面可以滚动(要判断设备);
差异:键盘弹出 苹果fix布局失效
导致问题:fix布局元素在键盘弹出时会跟随屏幕滚动
解决:设计规避,输入内容尽量靠上
解决办法:加个字,不想要字,加个点,文字颜色设成透明
div: width: 10rem; display: table; margin: auto;
cont: line-height: 3rem; //高度固定
div:
line-height: 1em;
display: inline-block;
cont: text-align: center;
div:
text-align: left;
display:inline-block;
iframe 标签 scrolling=”yes”; iphone 需设置: -webkit-overflow-scrolling: touch; 才可以滚动
-webkit-overflow-scrolling: touch; 只在 iphone端实现平滑滚动