移动端Web开发笔记

最近写的一个移动端项目:上海 地铁指路通,之间遇到的一些问题,记录下来(之后会不断补充的):css

 

1. 丰富的页面Meta:jquery

1.1: 控制显示区域各类属性:android

<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
  • width                - viewport的宽度
  • height               - viewport的高度
  • initial-scale         - 初始的缩放比例
  • minimum-scale    - 容许用户缩放到的最小比例
  • maximum-scale   - 容许用户缩放到的最大比例
  • user-scalable       - 用户是否能够手动缩放

1.2:IOS中Safari容许全屏浏览:ios

<meta content="yes" name="apple-mobile-web-app-capable">

1.3:IOS中Safari顶端状态条样式:web

<meta content="black" name="apple-mobile-web-app-status-bar-style">

1.4:忽略将数字变为电话号码:浏览器

<meta content="telephone=no" name="format-detection">

 

2. CSS相关:app

2.1:  img自适应:iphone

img {max-width: 100%;height: auto;width: auto9; /* ie8 */ -ms-interpolation-mode:bicubic; /* 这个在作实时缩放图片、缩略图的时候用处挺大。能够解决缩放失真问题。 IE7 Only */}

2.2:隐藏被旋转的 div 元素的背面,若是在旋转元素不但愿看到其背面时,该属性颇有用。 for 转场闪屏问题:测试

div {
    backface-visibility:hidden;
    -webkit-backface-visibility:hidden;    /* Chrome 和 Safari */
    -moz-backface-visibility:hidden;     /* Firefox */
    -ms-backface-visibility:hidden;     /* Internet Explorer */
}

 2.3: @-webkit-keyframes能够预约义不少你所想到的动画,而后经过-webkit-transition来调用。好比:字体

@-webkit-keyframes fadein{
    from{opacity: 0; }
    to{opacity: 1; }
}
@-moz-keyframes fadein{
    from{opacity: 0; }
    to{opacity: 1; }
}
@-o-keyframes fadein{
    from{opacity: 0; }
    to{opacity: 1; }
} 
@keyframes fadein{
    from{opacity: 0; }
    to{opacity: 1; }
}

img {-moz-animation: fadein 350ms ease-out;-webkit-animation: fadein 350ms ease-out;-o-animation: fadein 350ms ease-out;animation: fadein 350ms ease-out;}

/*以上css能够实现加载页面时,图片透明度变化的动画效果*/

2.4: -webkit-tap-highlight-color:rgba(255,255,255,0) 能够同时屏蔽ios和Android下点击元素时出现的阴影。
备注:transparent的属性值在android下无效。

a,button,input{-webkit-tap-highlight-color: rgba(255,0,0,0);}

 

2.5:-webkit-appearance:none 能够同时屏蔽输入框怪异的内阴影,解决iOS下没法修改按钮样式,测试还发现一个小问题就是,加了上面的属性后,iOS下默认仍是带有圆角的,不过可使用 border-radius属性修改。

input{-webkit-appearance: none;} /*去除iphone自带样式*/

 

2.6:IOS禁止横竖屏时字体变大,-webkit-text-size-adjust: none;

2.7:除了BODYHTML的滚动条,在触屏下几乎全部浏览器都不支持DIV的滚动条(说几乎是由于新版的IOS已经支持):解决方法我知道的有2种,一种是iscroll.js。另外一种是安卓4和IOS5+均可以使用 CSS3的新属性 -Webkit-overflow-scrolling: touch; 来解决.

div {-Webkit-overflow-scrolling: touch;}

2.8:移动端click事件有300ms延迟。建议使用tap事件代替。还有建议使用zepto.js代替jquery.js。

2.9:media query 条件:

iPhone < 5:
@media screen and (device-aspect-ratio: 2/3) {}

iPhone 5:
@media screen and (device-aspect-ratio: 40/71) {}

iPad:
@media screen and (device-aspect-ratio: 3/4) {}

 

暂时想起来这么多,之后再不断补充。。

以上只是我的的总结,若是你有更好的建议,请留言,一块儿共勉进步!!- -!

相关文章
相关标签/搜索