在做文章评论的功能时,会遇到很多兼容性的问题,在不同机型上的表现也很不一致,总结了以下这些问题。 1. 日期问题 对于yyyy-mm-dd hh:mm:ss 这种格式在ios系统不识别。...键盘收起,页面卡住,不回落 ios12上,发现键盘收起的时候,页面会卡主,留下底部一片空白,稍微动一下页面,就会恢复。...这种问题,在网上查了很多解决方案,大致是在blur事件中,让页面滚动一下 window.scrollTo(0, scroll); 但是有一个很严重的问题:如果页面上有按钮需要操作 ,例如,评论的输入框+...3. ios12在微信小程序的webview,键盘收回,页面底部会留白 这个问题怀疑是页面的scroll设置了auto导致的。 解决方案:滚动一下页面,请参考链接,代码有效。...键盘遮挡输入框 输入框如果使用了fixed固定在底部,键盘顶起的时候,iphone上fixed会失效,导致页面滚动输入框会随着页面滚动,并且在部分机型上,输入框偶尔会被键盘遮挡,这种偶现的问题,很不友好
⭐️⭐️⭐️⭐️⭐️click 点击延迟与穿透问题 现象 在 iOS 设备上,单击事件可能会有 300ms 的延迟,因为 Safari 浏览器需要在单击 300ms 后判断用户是否进行了第二次点击以实现双击缩放操作...设备上,点击 input 框弹出键盘时,可能会将页面顶起来,导致页面样式错乱。...失去焦点时,键盘收起,键盘区域空白,未回落。 原因 键盘不能回落问题出现在 iOS 12+ 和 wechat 6.7.4+ 中,而在微信 H5 开发中是比较常见的 Bug。 ...是#/home,导致初始化微信 SDK 时传入的分享 url 和用户实际触发分享操作时页面的 url 不一致,致使在 iOS 上分享失败。...⭐️⭐️iOS safari 被点击元素会出现半透明灰色遮罩 解决方案 给 html 或者 body 加入以下 css 代码。
属性在IOS及Android上无法使用,在PC端正常 2.audio元素没有设置controls时,在IOS及Android会占据空间大小,而在PC端Chrome是不会占据任何空间 问题4:Safari...> 顶部状态栏背景色 apple-mobile-web-app-capable是设置Web应用是否以全屏模式运行;语法: mobile-web-app-capable...:纠错 关于iOS与OS X端字体的优化(横竖屏会出现字体加粗不一致等)问题 iOS浏览器横屏时会重置字体大小,设置text-size-adjust为none可以解决iOS上的问题,但桌面版Safari...00:00,也就是说ios默认就是从0开始计算的,我们不需要设置后面的时分秒为00:00:00 iOS(safari)标签绑定点击事件无效 iOS(safari)有时候某个标签绑定点击事件无效,加上空的...onclick=""就好了,如: ios中location.href跳转页面空白 在location.href外套一层setTimeout就解决了!
一.场景 “吸顶”是一种比较老的交互方式,在PC页面已经用了很多年了,如图: sticky 吸顶元素的初始位置一般靠近页面顶部,但与顶部有一定距离,这块区域放的是最醒目的元素,比如Banner图...如果scroll本身自带节流,就很容易错过临界点判断,导致吸顶元素“跳一下”,体验不平滑 IOS scroll IOS 8-的Safari,包括UIWebView,对scroll事件做了很大限制: 手指划动屏幕...IOS 8+的Safari和WKWebView能够疯狂触发scroll,无论手指在不在屏幕上,无论是不是惯性滚动期间。...CSS sticky并不能解决这个问题 笔者还没有找到合适的解决方案,目前方案是牺牲tab浏览状态独立性,多tab共用body的滚动条,切换tab时滚回之前的位置。...五.总结 一般元素吸顶:Android用scroll方案,在效果可接受范围内手动节流,提升性能;IOS用CSS sticky,如果不需要兼容IOS 8-以及任意版本UIWebView的话,也可以采用scroll
针对于iOS11.0-iOS11.1的系统: 当设置了viewport-fit=cover,H5页面会覆盖页面安全区域全屏展示,但是这样会带来页面元素会被“刘海儿”和底部Home Indicator遮挡问题...总结如下图: image.png 在了解了以上情况后,大致可以知道如果要适配一个普通H5页面的顶部时,可以在meta标签的viewport属性中加入: iOS 11.2 */ } 在iOS11机型上,H5加入viewport-fit=cover后,safeArea的值是基于“如果布局接触了非安全区域才会赋值”。...Xcode9.0以上 步骤:在Xcode打开一个空白项目,选择iPhoneX模拟器,并点击运行按钮即可。 image.png 安装应用 在Xcode上直接编译客户端代码。...H5 调试 安装应用后,在应用里访问H5页面,然后打开Safari(需要开启Safari的开发工具),在菜单中选择开发-Simulator-页面地址 ,就可以用Safari的检查器对其作调试了。
遮挡的问题,所以苹果提供在 css 中设置 constant(safe-area-inset-X) 距离来规避遮挡问题。...总结如下图: 在了解了以上情况后,大致可以知道如果要适配一个普通 H5 页面的顶部时,可以在 meta 标签的 viewport 属性中加入: <meta name="viewport" content...iPhone X 模拟器 H5调试 介绍 加入适配代码后,在没 iPhone X 的情况下,可以通过 iPhone X 模拟器调试,像手机QQ / 手机空间里的 H5 页面,可以通过在模拟器上安装手机QQ...Xcode 9.0 以上 步骤:在 Xcode 打开一个空白项目,选择 iPhone X 模拟器,并点击运行按钮即可。 安装应用 在 Xcode 上直接编译客户端代码。...H5 调试 安装应用后,在应用里访问 H5 页面,然后打开 Safari(需要开启 Safari 的开发工具),在菜单中选择开发-Simulator-页面地址 ,就可以用 Safari 的检查器对其作调试了
5、 移动端手机号码识别(IOS) 在 iOS Safari (其他浏览器和Android均不会)上会对那些看起来像是电话号码的数字处理为电话链接,比如: 7位数字,形如:1234567 带括号及加号的数字...双击缩放是指用手指在屏幕上快速点击两次,iOS 自带的 Safari 浏览器会将网页缩放至原始比例。...在IOS safari下,大概为300毫秒。这就是延迟的由来。...造成的后果用户纯粹单击页面,页面需要过一段时间才响应,给用户慢体验感觉,对于web开发者来说是,页面js捕获click事件的回调函数处理,需要300ms后才生效,也就间接导致影响其他业务逻辑的处理。...-webkit-tap-highlight-color: rgba(0, 0, 0, 0); } 但这个方法在三星的机子上无效,有一种妥协的方法是把页面非真实跳转链接的a标签换成其它标签,可以解决这个问题
以往的做法 其实对于 web 前端来说,刘海在绝大多数的场景下是可以不用处理的,因为 safari 或客户端(微信,手Q等)的 statusBar 已经替我们抹平了顶部刘海,我们只需要关心底部的那条黑色的胡子...这样只是解决了底部胡子的问题,我们试着横屏看看: ? 这里有个很明显的问题:页面左边的文字被刘海遮挡。 ?...在 safari 往上段滑动一小段距离,可以看到当 safari 的底部操作栏出现后,页面依然会保留着距底部的 34px 空白。...我们要考虑一些问题: 1、在非矩形显示器上设置 viewport 边界时,Viewport边界框(Viewport Bounding Box)的面积大于显示区域,导致了剪切区域 2、如果要保证Web页面的任何部分都没有隐藏...Webkit在iOS11中新增CSS Functions: env( )替代constant( ),文档中推荐使用env( ),而 constant( ) 从Safari Techology Preview
-- ios7.0版本以后,safari上已看不到效果 --> 将网站添加到主屏幕快速启动方式,仅针对ios的safari顶端状态条的样式 mobile-web-app-status-bar-style...双击缩放是指用手指在屏幕上快速点击两次,iOS 自带的 Safari 浏览器会将网页缩放至原始比例。...在IOS safari下,大概为300毫秒。这就是延迟的由来。...造成的后果用户纯粹单击页面,页面需要过一段时间才响应,给用户慢体验感觉,对于web开发者来说 是,页面js捕获click事件的回调函数处理,需要300ms后才生效,也就间接导致影响其他业务逻辑的处理。...important;} 最好的解决方案: 整个页面用rem或者百分比布局 消除transition闪屏 网络都是这么写的,但我并没有测试出来 .css{ /*设置内嵌的元素在 3D 空间如何呈现:
以往的做法 其实对于 web 前端来说,刘海在绝大多数的场景下是可以不用处理的,因为 safari 或客户端(微信,手Q等)的 statusBar 已经替我们抹平了顶部刘海,我们只需要关心底部的那条黑色的胡子...在 safari 往上段滑动一小段距离,可以看到当 safari 的底部操作栏出现后,页面依然会保留着距底部的 34px 空白。...我们要考虑一些问题: 1、在非矩形显示器上设置 viewport 边界时,Viewport边界框(Viewport Bounding Box)的面积大于显示区域,导致了剪切区域 2、如果要保证Web页面的任何部分都没有隐藏...apple 把安全区域的位置通过 css 属性提供给了开发者,它们可以通过CSS的constant( )函数来完成: constant(safe-area-inset-top):在Viewport顶部的安全区域内设置量...Webkit在iOS11中新增CSS Functions: env( )替代constant( ),文档中推荐使用env( ),而 constant( ) 从Safari Techology Preview
底部工具中的小加号,或者ipad顶部左侧的小加号,就可以将当前的页面添加到设备的主屏,在设备的主屏会自动增加一个当前页面的启动图标,点击该启动图标就可以快速、便捷的启动你的webapp。...13、iOS中如何彻底禁止用户在新窗口打开页面 有时我们可能需要禁止用户在新窗口打开页面,我们可以使用a标签的target=”_self”来指定用户在新窗口打开,或者target属性保持空,但是你会发现...在移动设备开发过程中我们通常会对文本框定义为宽度100%,将其定义为块级元素以实现全屏自适应的样式,但此时你会发现,该元素的边框(左右)各1个像素会溢了文档,导致出现横向滚动条,为解决这一问题,我们可以为其添加一个特殊的样式...19、如何解决android平台中页面无法自适应 虽然你的html和css都是完全自适应的,但有一天如果你发现你的页面在android中显示的并不是自适应的时候,首先请你确认你的head标签中是否包含以下...20、如何解决iOS 4.3版本中safari对页面中5位数字的自动识别和自动添加样式 新的iOS系统也就是4.3版本,升级后对safari造成了一个bug:即使你添加了如下的meta标签,safari
使用解决连续数字误识别为电话号码导致样式出错的问题。...个人解决方案mobile-polyfill/ios10-user-scalable-no.js。...,在iOS下,需要禁止页面中的touchmove事件,在安卓下,需要给html, body元素加上如下CSS:height:100%;overflow:hidden;。...css.sm-no-scroll { height: 100%; overflow: hidden; } 但由于禁掉了touchmove事件,导致iOS下你希望滚动的部分也无法滚动了,因此对于希望滚动的部分...在重叠的区域里,被遮盖的元素绑定click,遮盖的元素绑定touch事件,且touch后遮盖的元素会隐藏的话,就会造成穿透,因为click是在touch之后延迟触发的,浏览器会误认为是在遮盖的元素上触发了
底部工具中的小加号,或者ipad顶部左侧的小加号,就可以将当前的页面添加到设备的主屏,在设备的主屏会自动 增加一个当前页面的启动图标,点击该启动图标就可以快速、便捷的启动你的webapp。...13、iOS中如何彻底禁止用户在新窗口打开页面 有时我们可能需要禁止用户在新窗口打开页面,我们可以使用a标签的target=”_self“来指定用户在新窗口打开,或者target属性保持空,但 是你会发现...在移动设备开发过程中我们通常会对文本框定义为宽度100%,将其定义为块级元 素以实现全屏自适应的样式,但此时你会发现,该元素的边框(左右)各1个像素会溢了文档,导致出现横向滚动条,为解决这一问题,我们可以为其添加一个特殊...19、如何解决android平台中页面无法自适应 虽然你的html和css都是完全自适应的,但有一天如果你发现你的页面在android中显示的并不是自适应的时候,首先请你确认你的head标签中是否包含以下...20、如何解决iOS 4.3版本中safari对页面中5位数字的自动识别和自动添加样式 新的iOS系统也就是4.3版本,升级后对safari造成了一个bug:即使你添加了如下的meta标签,safari
format-detection" content="email=no" /> 5、当网站添加到主屏幕快速启动方式,可隐藏地址栏,仅针对 ios 的 safari ios7.0版本以后,safari上已看不到效果 --> 6、将网站添加到主屏幕快速启动方式,仅针对 ios 的 safari 顶端状态条的样式 mobile-web-app-status-bar-style... 02 CSS 的样式技巧 1、禁止 ios 和 android 用户选中文字 .css { -webkit-user-select:none } 2、禁止 ios 长按时触发系统的菜单...-- 选择视频 --> 2、取消 input 在ios下,输入的时候英文首字母的默认大写 的 HTML 元素样式上提供了跨浏览器的高度一致性。相比于传统的CSS reset,Normalize.css是一种现代的、为HTML5准备的优质替代方案。
2016.07.25~2016.07.29 核心概念 CSS pixels、Device pixels 问题解析 CSS pixels: 浏览器使用的抽象单位, 主要用来在网页上绘制内容 Device...pixels: 显示屏幕的的最小物理单位,每个dp包含自己的颜色、亮度 等值的 CSS pixels在手机屏幕上占多大的位置,这不是固定的,这取决于很多属性。...) 问题解析 //第一种方法 // 为了防止替换的图片也加载失败而导致死循环,这边给完成替换的图片移除掉error事件 $("img").error(function () { $(this).unbind...*Mobile.*/) || !!u.match(/AppleWebKit/), //是否为移动终端 ios: !!u.match(/\(i[^;]+;( U;)? CPU....2016.07.25~2016.07.29 核心概念 页面刷新 问题解析 history.go(0) location.reload() location = location location.assign
|Android|ios|iPad)/i))) { window.location = "手机页面.html"; //移动端访问跳转页面 } else {...window.location = "电脑页面.html"; //PC端访问跳转页面 } 通过JS判断访问设备并加载对应CSS样式 Mobile.*/), //ios终端 ios: !!u.match(/\(i[^;]+;( U;)? CPU....CSS3的媒体查询,在不同的分辨率下,调用不同的CSS文件 var browser={ versions:function(){...*Mobile.*/), //ios终端 ios: !!u.match(/\(i[^;]+;( U;)? CPU.
(经常更新该文) 移动端 H5 相关问题汇总: 1px 问题 响应式布局 iOS 滑动不流畅 iOS 上拉边界下拉出现白色空白 页面件放大或缩小不确定性行为 click 点击穿透与延迟 软键盘弹出将页面顶起来...产生原因 为什么 iOS 的 webview 中 滑动不流畅,它是如何定义的? 最终我在 safari 文档里面寻找到了答案(文档链接在参考资料项)。 ?...iOS 上拉边界下拉出现白色空白 表现 手指按住屏幕下拉,屏幕顶部会多出一块白色区域。手指按住屏幕上拉,底部多出一块白色区域。...滚动妥协填充空白,装饰成其他功能 在很多时候,我们可以不去解决这个问题,换一直思路。根据场景,我们可以将下拉作为一个功能性的操作。 比如:下拉后刷新页面 ?...软键盘将页面顶起来、收起未回落问题 表现 Android 手机中,点击 input 框时,键盘弹出,将页面顶起来,导致页面样式错乱。 移开焦点时,键盘收起,键盘区域空白,未回落。
(经常更新该文) 移动端 H5 相关问题汇总: 1px 问题 响应式布局 iOS 滑动不流畅 iOS 上拉边界下拉出现白色空白 页面件放大或缩小不确定性行为 click 点击穿透与延迟 软键盘弹出将页面顶起来...产生原因 为什么 iOS 的 webview 中 滑动不流畅,它是如何定义的? 最终我在 safari 文档里面寻找到了答案(文档链接在参考资料项)。...iOS 上拉边界下拉出现白色空白 表现 手指按住屏幕下拉,屏幕顶部会多出一块白色区域。手指按住屏幕上拉,底部多出一块白色区域。...iOS 中的 safari,为了实现双击缩放操作,在单击 300ms 之后,如果未进行第二次点击,则执行 click 单击操作。也就是说来判断用户行为是否为双击产生的。...软键盘将页面顶起来、收起未回落问题 表现 Android 手机中,点击 input 框时,键盘弹出,将页面顶起来,导致页面样式错乱。 移开焦点时,键盘收起,键盘区域空白,未回落。
iOS Safari (其他浏览器和 Android 均不会)上会对那些看起来像是电话号码的数字处理为电话链接,比如: 7 位数字,形如:1234567 带括号及加号的数字,形如:(+86)123456789...在高清屏下,移动端的 1px 会很粗。 那么为什么会产生这个问题呢?...加入自动触发播放的代码 $('html').one('touchstart', function() { audio.play() }) iOS 上拉边界下拉出现空白 手指按住屏幕下拉,屏幕顶部会多出一块白色区域...手指按住屏幕上拉,底部多出一块白色区域。 在 iOS 中,手指按住屏幕上下拖动,会触发 touchmove 事件。...IOS 中 input 键盘事件 keyup、keydown、等支持不是很好, 用 input 监听键盘 keyup 事件,在安卓手机浏览器中没有问题,但是在 ios 手机浏览器中用输入法输入之后,并未立刻相应
领取专属 10元无门槛券
手把手带您无忧上云