移動端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) {}

 

暫時想起來這麼多,之後再不斷補充。。

以上只是我的的總結,若是你有更好的建議,請留言,一塊兒共勉進步!!- -!

相關文章
相關標籤/搜索