移动端开发遇到的一些兼容性问题及其整理「建议收藏」

移动端开发遇到的一些兼容性问题及其整理「建议收藏」IOS手机测试时会发现加了margin-bottom的属性无效。解决:替换为padding-bottom或者放个空盒子有高度宽度占位即可。IOS手机的输入框出现未知的内阴影。解决:input:{-webkit-appearance:none;}控制手机上方的标题:document.title;…

大家好,又见面了,我是你们的朋友全栈君。

此博客仅为个人开发整理笔记。

  1. IOS手机测试时会发现加了margin-bottom的属性无效。解决:替换为padding-bottom或者放个空盒子有高度宽度占位即可。
  2. IOS手机的输入框出现未知的内阴影。解决:input: {-webkit-appearance: none;}
  3. 控制手机上方的标题:document.title;
  4. canvas画出来的内容模糊问题。解决:canvas问题解决
  5. new Date的ios兼容问题:当使用new Date(‘2020-1-20’)这种方法的时候安卓和PC端都是没问题的,IOS手机不支持,IOS支持new Date(‘2020/1/20’)
  6. font-weight: 兼容问题【在不同手机和浏览器上的效果不一致】
  7. 移动端1px问题【有些机型显示的边框实际比1px粗一些】:
    dpr(devicePixelRatio)
    dpr = 设备物理像素/设备独立像素
    什么是设备物理像素,什么是设备独立像素,这些都不重要(详细讲解参考https://www.zhangxinxu.com/wordpress/2012/08/window-devicepixelratio/),重要的是你需要知道:
    dpr = 设备实际显示的像素比/css像素比
    比如css像素为1,设备的dpr为2,那么屏幕上实际显示的像素就是css像素*dpr,也就是2px。
    其中dpr可以通过css或者js查询出来,知道了css像素与实际显示像素的缩放比,那么就可以利用transform: scale()对1px进行缩放。
    2.利用dpr适配1px
    知道了什么是dpr,那么如何让利用dpr来适配1px呢。
    css实现(以下边框为例):
    css中可以利用media查询dpr

解决代码:

.scale-1px { 
   
  position: relative;
  border: none; &:after { 
   
    position: absolute;
    left: 0;
    bottom: 0;
    content: '';
    width: 100%;
    height: 1px;
  }
}
@media screen and (-webkit-min-device-pixel-ratio: 2) { 
   
  .scale-1px:after { 
   
      -webkit-transform: scaleY(0.5);
      transform: scaleY(0.5);
  }
}
@media screen and (-webkit-min-device-pixel-ratio: 3) { 
   
  .scale-1px:after { 
   
      -webkit-transform: scaleY(0.33);
      transform: scaleY(0.33);
  }
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/152723.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 配置注册表数据库损坏

    配置注册表数据库损坏

    2021年9月29日
    54
  • js字符串操作方法(js对象转字符串)

    一、关于字符串分割1、slice(start,end);关于这个方法,一定要搞懂四个关键点:(1)截取字符串时不包括下标为end的元素。(2)end是可选参数,没有时,默认从start到结束的所有字符串。(3)String.slice与Array.slice区别。(4)参数为负数时,是如何处理的。其中第3点其实就是在JavaScript中字符串和数组都具有这个方法,它们…

    2022年4月18日
    51
  • Lucene.net(4.8.0) 学习问题记录二: 分词器Analyzer中的TokenStream和AttributeSource[通俗易懂]

    Lucene.net(4.8.0) 学习问题记录二: 分词器Analyzer中的TokenStream和AttributeSource[通俗易懂]前言:目前自己在做使用Lucene.net和PanGu分词实现全文检索的工作,不过自己是把别人做好的项目进行迁移。因为项目整体要迁移到ASP.NETCore2.0版本,而Lucene使用的版本是3.6.0,PanGu分词也是对应Lucene3.6.0版本的。不过好在Lucene.net已经有了Core2.0版本,4.8.0bate版,而PanGu分词,目前有人正在做,貌似已经做完,只是…

    2022年7月22日
    14
  • 如何在 Python 中使用断点调试

    如何在 Python 中使用断点调试实际上没人能一次就写出完美的代码,除了我。但是世界上只有一个我。–林纳斯·托瓦兹(Linux之父) 既然不是神,写代码自然免不了要修改。修改代码的过程被称作调试,又叫 debug。 刚接触编程的人,往往对调试代码没有很深的认识,觉得把功能做出来就完事了。一旦程序运行出现问题,便无从下手。而实际开发中,调试代码通常要花费比新编写代码更多的时间。所谓“行百里者半于九十”,这句…

    2022年5月21日
    46
  • jupyter跟python的关系_jupyter python

    jupyter跟python的关系_jupyter python大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。jupyter和pycharm区别如下:1、Python是一种广泛使用的高级的、通用的、解释的、动态编程语言。”Python是一种相当古老且流行的语言,它是开源的,常被应用于网站开发(利用Django、Flask等框架)、科学统计计算(NumPy、SciPy等库可以帮助计算)、软件开发等甚至更多。Jupyter项目开…

    2022年8月28日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号