手机端小问题整理

关于手机分辨率:物理独立像素为手机真实像素。物理像素为手机宽度(media根据这个判断)。设备像素比为物理独立像素除以物理像素。不同手机设备像素(window.devicePixelRatio)比不同,iphone5,6 dpr=2,iphone 6s dpr=3,大于1为高清屏。电脑retina屏dpr=2。

物理像素ipone5 320*568、iphone6 375*667、iphone6s 414*736。

css中1px对应几物理像素跟布局视口(viewport)和物理独立像素相关。1px=物理独立像素/viewport

viewport是浏览器厂商提供值,介于768-1024之间常用980px;移动端需要设置viewport=device-width(物理像素)配合initial-scale使用。1px=物理独立像素/viewport=devicewidth*dpr/devicewidth=dpr个物理像素。看起来比较粗。具体适配请参考:传送门





1,tap后会出现一个半透明的灰色背景,起初以为是outline作怪,加上后发现没反应,最后发现是tap后的背景高亮,要重设这个表现,则需要设置-webkit-tap-highlight-color为所需色彩,直接透明吧:a,img,button,input,textarea{-webkit-tap-highlight-color:rgba(255,255,255,0);}

2,另外,如何去掉textarea,input的默认样式(IOS上的圆角及内阴影等,Android未测试):input,textarea,a{-webkit-appearance:none;}

去除点击背景高亮:-webkit-tap-highlight-color: transparent;

3,手机端click有一秒延迟 非常明显哦。。。如果设置为tap/touchstart事件,click依然会触发。看上去像点击穿透,需要stop阻止click事件触发。

4,禁止号码识别:<meta name="format-detection" content="telephone=no">

5,滚动条出现后卡顿问题解决:-webkit-overflow-scrolling: touch; 

6,不同浏览器获取宽度不统一:document.body.clientWidth比较靠谱;window.innerWidth Safari中不对;window.screen.width Android微信浏览器不对。

7,多次点击绝对定位div移位问题:修改为fixed定位,可能导致其他div也需要设置为fixed。见另一篇《小技巧css解决移动端ios不兼容position:fixed》

8,微信长按图片需要等待5s以上出现保存图片弹窗,大多是因为图片太大,cdn加速即可解决问题。

9,overflow:hidden 在iphone Safari下失效,可在设置的div里面新增一个div 设置position:relative;overflow:hidden即可;

10,transform属性会渲染一个新的空间 导致fixed定位以设置为transform的div为基准,解决:1,fixed定位元素摘到transform元素外面;2,可以在动画执行完成后js去掉该属性;z-Index也会失效。

11,flex布局在UC浏览器span标签需改成div才生效

手机端调试工具: weinre;或者手机连接电脑,chrome浏览器打开chrome://inspect/#devices;http://www.cnblogs.com/xy-nb/p/web.html



手机端跳转到appstore下载app

html:

<div id="wechatTip" class="wechat-tip">

    <img src="/resource/images/tip.png" alt="在浏览器中打开">

</div>

css:

.wechat-tip {

    text-align: right;

    display: none;

    position: fixed;

    z-index: 1000;

    width: 100%;

    height: 100%;

    left: 0;

    top: 0;

    background-color: rgba(0,0,0,0.8);

}

.wechat-tip img {

    max-width: 88%;

    margin-right: 1rem;

}

js

 $(document).on('click', '#download', function(event) {

        var  userAgent = navigator.userAgent.toLowerCase();

        if( /(micromessenger)/i.test(userAgent) ){

            event.preventDefault();

            $('#wechatTip').show();

        } else if (/(iphone|ipad|ipod|ios)/i.test(userAgent)){

            return;

        } else if (/(android)/i.test(userAgent)){

            event.preventDefault();

            window.location = "http://www.mioji.com/download/android/MiojiTravel_1_v1.1.0.apk";

        } else{

            event.preventDefault();

            alert("请用安卓或者苹果手机下载APP。");

        }

    });


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值