记H5单页遇到的几个ios兼容问题
最近写一个H5活动页,安卓里的表现很不错,写下来很少出现兼容性问题,ios就不一样了,好多问题都出现在ios上(手动狗头)🐶
1. ios在微信里弹出软键盘之后,页面底部留白
// 聚焦事件让窗口强制回归 $(document).on("blur","input",function(){ // 这里注意下,如果表单是后来append添加的,不是一开始就有的就用on来监听(至于为啥要用on而不直接用blur事件-原理同click jquery点击事件失效原因和解决办法)
setTimeout(() => { window.scrollTo(0,0); }, 100); });
2. 利用伪类重写按钮样式的时候ios里的兼容问题
问题:用伪类重写按钮样式的时候,嵌套了一层,写里面.radio的伪类,就会导致在ios里选择的时候样式没激活或者是只能激活列表中的第一个元素
下面是出现问题的结构和样式
// 页面结构 <ul class="check-list"> <li> <input id="aaa" name="xx" type="radio" value="bbb"> <label for="aaa"> <span class="radio"></span> <span class="value">aaa</span> </label> </li> <li> <input id="bbb" name="xx" type="radio" value="bbb"> <label for="bbb"> <span class="radio"></span> <span class="value">bbb</span> </label> </li> </ul>
样式
.radio { width: 16px; height: 16px; line-height: 11px; text-align: center; top: 7px; border-radius: 50%; display: none; } input:checked + label .radio { border-color: #fff; &::after { content: ''; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: #ff6e00; } }
这种可能会出现问题,嵌套伪类在ios上可能出现兼容问题,所以在写按钮的时候不妨直接重写样式,或是不要多层嵌套伪类
3.css3动画的ios兼容问题
在写从底部飞入这种效果的时候 需要注意,第一次的时候,是用定位的变化来写@keyframe的,后面在ios上出现动画失效的现象
解决:改成用translate位移变化来实现
分类:
浏览器兼容及移动端兼容
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
2018-04-10 日期选择时两个日期之间的动态控制--My97datepicker日期选择控件