最近寫的一個移動端項目:上海 地鐵指路通,之間遇到的一些問題,記錄下來(之後會不斷補充的):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) {}
暫時想起來這麼多,之後再不斷補充。。
以上只是我我的的總結,若是你有更好的建議,請留言,一塊兒共勉進步!!- -!