移动前端开发BUG记录
记录各种奇葩问题。
IOS
弹窗高度下榻问题
表现形式
如下弹窗,最外层竖直水平居中。内容动态加载。
1 | <section id="pop" class="pop"> |
1 | var html = ''; |
在iphone下会出现如下bug:
BUG原因
在iphone下,点击按钮触发弹窗渲染时。会先渲染最外层的section#pop
,这时候section#pop
是出于居中状态,并且高度为0。然后开始往section#pop
里面填充内容。
这时候浏览器不会再去渲染弹窗居中的样式。而是让内容顺着弹窗最初的高度,往下填充内容。导致弹窗看起来整体的高度下塌。
但是,里面的链接,按钮等的位置其实是在整体居中的位置。而不是我们看上去的位置。所以点击按钮或链接会失效。
解决办法
可以连同最外层的section#pop
一起填充进去。例如:
1 | var html = ''; |
移动端:active伪类事件失效
BUG原因
Safari Mobile 默认不使用:active
状态,除非元素上或<body>
上有一个touchstart
事件处理器。
相关链接:https://developer.mozilla.org/zh-CN/docs/Web/CSS/%3Aactive
解决办法
1 | document.body.addEventListener('touchstart', function () {}); |
Android
字体图标显示不出来
表现形式
字体图标在小米2的QQ浏览器上显示不出来,如图:
BUG原因
部分手机浏览器不支持  + 3位16进制 的Unicode字符,如
解决办法
把字体图标编码制作成  + 4位16进制 即可,如󦀚
;