最近写的一个移动端项目:上海 地铁指路通,之间遇到的一些问题,记录下来(之后会不断补充的):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">
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:除了BODY
和HTML
的滚动条,在触屏下几乎全部浏览器都不支持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) {}
暂时想起来这么多,之后再不断补充。。
以上只是我我的的总结,若是你有更好的建议,请留言,一块儿共勉进步!!- -!