热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

我所遇过的挪动端兼容性问题

事情一年多了,置信在坐的列位前端也都跟我一样,对在手机上,特别是iphone上涌现的种种兼容性以为异常头疼。这篇文章仅作为一份记录供人人参考。怎样画出1px的线?起首问人人一个题目

事情一年多了,置信在坐的列位前端也都跟我一样,对在手机上,特别是
iphone上涌现的种种兼容性以为异常头疼。这篇文章仅作为一份记录供人人参考。

怎样画出 1px 的线?

起首问人人一个题目,怎样在iphone上画出1px的线?
萌新能够就以为,这不是很简朴吗,看我一把梭:

.line {
border-top: 1px solid #000
}

固然,假如没有不测的话,设想走查的时刻就会过来跟你说,你这线太粗了,跟设想稿上的不一致!

因为每部差别型号的手机的DPR都不尽相同,所以同样是1px在一些手机上很细,在一些手机上却看起来很粗

一个简朴的处理方案

.line {
position: relative;
&::after {
position: absolute;
bottom: 0;
content: "";
width: 100%;
border-top: 1px solid #000;
transform: scaleY(.5)
}
}

固然了,假如不加以处置惩罚,在 DPR1 的屏幕上这条线反而会很细。我们能够在这个代码的基础上加上媒体查询来完美它👇

.line {
position: relative;
&::after {
position: absolute;
bottom: 0;
content: "";
width: 100%;
border-top: 1px solid #000
}
@media screen and (-webkit-min-device-pixel-ratio: 2) {
&::after {
transform: scaleY(.5)
}
}
}

闻一知十

看完上面的代码,我们能够再想一个题目,怎样画出一个带圆角border呢?
说难也不难,这个要领是之前一个同砚供应给我的,非常好用👇

.line {
position: relative;
&::after {
position: absolute;
top: 0;
left: 0;
content: "";
width: 100%;
height: 100%;
border: 1px solid #000;
border-radius: 2px
}
@media screen and (-webkit-min-device-pixel-ratio: 2) {
&::after {
width: 200%;
height: 200%;
transform: scale(.5);
border-radius: 4px;
transform-origin: 0 0
}
}
}

键盘弹出后页面规划错位

征象

ios 12体系在挪动端存在如许的 BUG,复现步骤

  • 点击涌现弹框
  • 点击输入框唤起键盘
  • 输入终了后发明弹框上的按钮点击不了了

固然,这个 BUG 只需你悄悄滑动页面就发明题目被轻松处理了。实在处理的道理就是触发页面重绘,让被顶起来的页面节点回到原位。

处理方案

click () {
if (/os 12/ig.test(navigator.userAgent)) {
window.scrollTo(0, 0)
}
}

假如你用 Vue,也能够把点击事宜封装为一个指令,然后把这段代码加进去。

点击返回上一页页面不革新

征象

这也是我在项目中碰到的一个奇异的 BUG,点击「返回」按钮返回到上一页,然则页面却没有革新。

缘由

实在这是 ios 微信的缓存机制形成的,跳转到下一页时仍然会缓存当前页。

处理方案

window.addEventListener('pageshow', function(e) {
if (e.persisted) {
location.reload();
}
});

页面加载后返回上一页

征象

ios9 微信在页面加载后自动返回上一页

缘由

ios9 微信会自动触发 popstate 事宜,从而自动返回了上一页

处理方案

setTimeout(() => {
window.addEventListener('popstate', () => {
//
})
}, 1000)

扫描下方的二维码或搜刮「tony先生的前端补习班」关注我的微信民众号,那末就能够第一时间收到我的最新文章。
《我所遇过的挪动端兼容性问题》


推荐阅读
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • 网址:https:vue.docschina.orgv2guideforms.html表单input绑定基础用法可以通过使用v-model指令,在 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 本文介绍了OkHttp3的基本使用和特性,包括支持HTTP/2、连接池、GZIP压缩、缓存等功能。同时还提到了OkHttp3的适用平台和源码阅读计划。文章还介绍了OkHttp3的请求/响应API的设计和使用方式,包括阻塞式的同步请求和带回调的异步请求。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • 手把手教你使用GraphPad Prism和Excel绘制回归分析结果的森林图
    本文介绍了使用GraphPad Prism和Excel绘制回归分析结果的森林图的方法。通过展示森林图,可以更加直观地将回归分析结果可视化。GraphPad Prism是一款专门为医学专业人士设计的绘图软件,同时也兼顾统计分析的功能,操作便捷,可以帮助科研人员轻松绘制出高质量的专业图形。文章以一篇发表在JACC杂志上的研究为例,利用其中的多因素回归分析结果来绘制森林图。通过本文的指导,读者可以学会如何使用GraphPad Prism和Excel绘制回归分析结果的森林图。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 2022年的风口:你看不起的行业,真的很挣钱!
    本文介绍了2022年的风口,探讨了一份稳定的副业收入对于普通人增加收入的重要性,以及如何抓住风口来实现赚钱的目标。文章指出,拼命工作并不一定能让人有钱,而是需要顺应时代的方向。 ... [详细]
  • 先看看ElementUI里关于el-table的template数据结构:<template><el-table:datatableData><e ... [详细]
author-avatar
我没资格我不配
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有