• ie兼容,手机端兼容问题


    兼容性:

    1.ie6,7不能兼容border-radius;
    若需要可以用图片的方式进行模拟。

    2.ie6, 7中如果兄弟元素没有给左浮动,而本身给了右浮动,将会出现塌陷(也就是掉下去);
    如需要可以将右浮动的元素写在左边元素的前面。如:<span style="float:right"></span><p></p>

    3.ie6, 7不兼容ES6的写法,所以写js的时候要注意。

    4.ie6,7对CSS3的一些属性不能识别。
    比如animation;建议自己用jquery的animate()方法实现。

    5.ie6,7不识别伪类。

    6.图片会自带3px;
    解决方法:display:block;

    7.a标签包含img,会出现蓝色边框;
    解决方法:border:0;

    8.ie8及以下,有时候会遇到一个问题,当你用一个图片覆盖了整个页面,且你给了z-index属性,在下面的盒子中,空白处都会默认为这个图片。(png格式图片)
    解决方法:要给此盒子加background去覆盖这个层级关系,才可以选中此盒子对应的空白处。

    9.ie6兼容min-height
    解决方法:min-height:value;height:auto!important;height:value;(注意顺序不能换)。

    10.表单元素距离顶部不一致
    运用float来解决。

    11.margin外边距重叠,相互并列的两个元素,一个给了margin-top,一个给了margin-bottom,浏览器按照两者之间较大的值进行解析
    解决方法:给其中一个元素加overflow:hidden。

    12.padding-bottom给像素值时,在谷歌和ie浏览器中值有偏差。
    解决方法:换成给元素高,不给padding-bottom。

    13.解决IE6,IE7不能隐藏(overflow:hidden)绝对定位溢出的内容
    解决方法:哪个需要设置overflow;hidden,生效,就在哪个上面设置position:relative;

    14.有时候页面屏幕变小,内容背景显示不完全。
    解决方法:给个最小宽度。

    15.ie8以下调用json文件,json数据的对象必须完整。

    16.ie6下多个li包a,li给了浮动,当a为块元素时,li不在一排,掉了下来。
    解决方法:给a加display:inline-block;

    17.ie6支持hover

    18.IE6下png背景不透明问题的综合拓展:
    https://www.zhangxinxu.com/wordpress/2009/08/ie6%E4%B8%8Bpng%E8%83%8C%E6%99%AF%E4%B8%8D%E9%80%8F%E6%98%8E%E9%97%AE%E9%A2%98%E7%9A%84%E7%BB%BC%E5%90%88%E6%8B%93%E5%B1%95/

    19.ie6不支持png24格式保存下的透明背景,支持png8:因为png24格式下的透明是Alpha透明。

    H5移动端ios/Android兼容性:

    1.写背景图background时最好加上top left 或者0 0 不然写运动效果时容易出现跳

    2.禁止复制、选中文本
    .el {
    -webkit-user-select: none;
    -moz-user-select: none;
    -khtml-user-select: none;
    user-select: none;
    }

    3.苹果手机固定定位有bug 检查html和body是不是设置了overflow-x:hidden;


    4.给不同屏幕大小的手机设置特殊样式
    @media only screen and (min-device-width : 320px) and (max-device-width : 375px){}

    5.ios 设置input 按钮样式会被默认样式覆盖
    解决方式如下:
    input,textarea {
    border: 0;
    -webkit-appearance: none;
    }

    6.消除 IE10 里面的那个叉号:input:-ms-clear{display:none;}

    7.input 的placeholder属性会使文本位置偏上
    line-height: (和input框的高度一样高)---pc端解决方法
    line-height:normal ---移动端解决方法

    8.input type=number之后,pc端出现上下箭头

    input::-webkit-outer-spin-button,
    input::-webkit-inner-spin-button {
    -webkit-appearance: none !important;
    margin: 0;
    }

    9.实现android和ios系统手机打开相机并可选择相册功能

    <input class="js_upFile cover1" type="file" name="cover" accept="image/*" capture="camera" multiple/>

    $(function () {

    //获取浏览器的userAgent,并转化为小写
    var ua = navigator.userAgent.toLowerCase();

    //判断是否是苹果手机,是则是true
    var isIos = (ua.indexOf('iphone') != -1) || (ua.indexOf('ipad') != -1);

    if (isIos) {
    $("input:file").removeAttr("capture");
    };
    })

    10.移动端 HTML5 audio autoplay 失效问题
    这个不是 BUG,由于自动播放网页中的音频或视频,会给用户带来一些困扰或者不必要的流量消耗,
    所以苹果系统和安卓系统通常都会禁止自动播放和使用 JS 的触发播放,必须由用户来触发才可以播放。

    解决方法思路:先通过用户 touchstart 触碰,触发播放并暂停(音频开始加载,后面用 JS 再操作就没问题了)。

    11.iOS 浏览器横屏时会重置字体大小,设置 text-size-adjust 为 none 可以解决 iOS 上的问题,但桌面版 Safari 的字体缩放功能会失效,
    因此最佳方案是将 text-size-adjust 为 100% 。
    -webkit-text-size-adjust:100%;
    -ms-text-size-adjust:100%;
    text-size-adjust:100%;

    12.移动端尽量用touch的相关事件去代替click等其他鼠标事件。

    13.微信端调用type=file,选择文件,accept要这样写“image/*”;否则有些手机可能会出现选了图片没反应。

    14.解决第三方网页在微信浏览器中点击图片自动放大:

    传统方式:
    $(document).on(‘click’, ‘img’, e => {
    e.preventDefault();
    })
    这个方式可能会把所有的默认的属性都屏蔽了,典型的就是a标签不能跳转
    css方式:
    img{
    pointer-events: none;
    }
    这个会让img标签的点击事件失效,如果想要点击图片就要给上面再写一层
    Vue方式:
    v-on:click.prevent或者@click.prevent
    既能保证img标签的click,也能保证在微信中不自动放大,完美解决

  • 相关阅读:
    05_面向对象基础篇_02-构造方法、匿名对象、对象比较、this关键字
    Android Studio 生成 注入的插件
    Android 手机端自动化测试框架
    性能测试该怎么做
    移动端自动化openatx开源项目介绍,pytest并发测试框架结合
    Appium 并发多进程基于 Pytest框架
    Appium 并发测试基于unitest
    Appium 使用小结
    Pandas 命令整理
    Locust 测试结果通过Matplotlib生成趋势图
  • 原文地址:https://www.cnblogs.com/xinyouhunran/p/9299469.html
Copyright © 2020-2023  润新知