1. 程式人生 > >移動端開發注意事項、需要注意的問題、特殊屬性、精靈圖、座固定有自適應的佈局

移動端開發注意事項、需要注意的問題、特殊屬性、精靈圖、座固定有自適應的佈局

一、移動端開發注意事項

二、關於meta

    (一)、常用的公共meta屬性

1、viewport

<meta name="viewport"content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0"/>

width=device-width   寬度是裝置螢幕的寬度(畫素)

height=device-height 高度是裝置螢幕的高度(畫素)
initial-scale     初始的縮放比例 
minimum-scale     允許使用者縮放到的最小比例
maximum-scale     允許使用者縮放到的最大比例

user-scalable     使用者是否可以手動縮放

2、Format-detection

format-detection翻譯成中文的意思是“格式檢測”,顧名思義,它是用來檢測html裡的一些格式的,那關於meta的format-detection屬性主要是有以下幾個設定:

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

meta name="format-detection" content="email=no"
meta name="format-detection" content="adress=no"
也可以連寫:meta name="format-detection" content="telephone=no,email=no,adress=no"

如果禁用,我們呼叫撥號功能可以這麼寫!

如下:

<a href="tel:4008106999,1034">400-810-6999 轉 1034</a>

撥打手機直接如下:

<a  href="tel:15677777777">點選撥打15677777777</a>

點選撥號蘋果手機就會出現如下圖:

安卓手機會直接到號碼輸入撥打的介面。

3、http-equiv

這個屬性是很老的屬性了,一般手機網頁都是要有一定快取的,所以這個可以不用設定,關於更多的meta,請看我之前的一篇文章:網站連結

(二)、IOS私有meta屬性

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

1、第一個meta:

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

說明:
網站開啟對web app程式的支援。

如果content設定為yes,Web應用會以全屏模式執行,反之,則不會。content的預設值是no,表示正常顯示。你可以通過只讀屬性window.navigator.standalone來確定網頁是否以全屏模式顯示。

還有一個全屏顯示的屬性就是:

<meta name="apple-touch-fullscreen" content="yes" />

為了更好的相容,兩個meta可以都寫上!

2、第二個meta:

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

說明:

在web app應用下狀態條(螢幕頂部條)的顏色;
預設值為default(白色),可以定為black(黑色)和black-translucent(灰色半透明)。
注意:
若值為“black-translucent”將會佔據頁面px位置,浮在頁面上方(會覆蓋頁面20px高度–iphone4和itouch4的Retina螢幕為40px)。

具體如下圖:

(三)、IOS其他私有設定

新增主屏設定:

新增主屏之後,桌面圖片和啟動畫面如何設定呢?

桌面圖示設定:

<link rel="apple-touch-icon" href="touch-icon-iphone.png" />
<link rel="apple-touch-icon-precomposed" href="touch-icon-iphone.png" />

兩者的區別如下:

啟動畫面的設定:

<link rel="apple-touch-startup-image" href="milanoo_startup.png" />

當然,可以指定不同尺寸。

(四)、其他瀏覽器私有meta屬性【除非特需,一般不推薦使用】

1、QQ瀏覽器私有
全屏模式
<meta name="x5-fullscreen" content="true">
強制豎屏
<meta name="x5-orientation" content="portrait">
強制橫屏
<meta name="x5-orientation" content="landscape">
應用模式
<meta name="x5-page-mode" content="app">
2、UC瀏覽器私有
全屏模式
<meta name="full-screen" content="yes">
強制豎屏
<meta name="screen-orientation" content="portrait">
強制橫屏
<meta name="screen-orientation" content="landscape">
應用模式
<meta name="browsermode" content="application">
3、其它
針對手持裝置優化,主要是針對一些老的不識別viewport的瀏覽器,比如黑莓
<meta name="HandheldFriendly" content="true">
微軟的老式瀏覽器
<meta name="MobileOptimized" content="320">


windows phone 點選無高光
<meta name="msapplication-tap-highlight" content="no">

完整的移動端開發資訊的常用設定:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <!-- 移動端開發公共屬性 -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0,maximum-scale=1.0,user-scalable=0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <!-- 用來檢測html裡的一些格式的 -->
    <meta name="format-derection" content="telephone=no">
    <!-- 蘋果私有meta屬性 -->
    <!-- 網站開啟對web app程式的支援 -->
    <meta name="apple-mobile-web-capable" content="yes">
    <meta name="apple-touch-fullscreen" content="yes">
    <!-- 在web app應用下狀態條(螢幕頂部條)的顏色; -->
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
   
    <title>移動端</title>
    <!-- IOS其他私有設定 -->
    <!-- 桌面圖示設定 -->
    <link rel="apple-touch-precomposed" href="images/haoroomsicon.jpg">
    <!-- 啟動畫面的設定 -->
    <link rel="apple-touch-startup-image" href="images/haoroomsicon.jpg">

    <!-- h5相容性處理及檔案加速 -->
    <!--[if lt IE 9]>
        <script type="text/javascript" src="./html5shiv.js"></script>
        <script type="text/javascript" src="./respond.js"></script>
    <![endif]-->
</head>

三、關於樣式

1、上下拉動滾動條時卡頓、慢

body {
       -webkit-overflow-scrolling: touch; 
        overflow-scrolling: touch; 
}

2、禁止複製、選中文字

Element {
       -webkit-user-select: none; 
       -moz-user-select: none; 
       -khtml-user-select: none; 
         user-select: none; 
}
解決移動裝置可選中頁面文字(視產品需要而定)

3、長時間按住頁面出現閃退

element {
       -webkit-touch-callout: none; 
}


4、iphone及ipad下輸入框預設內陰影

Element{
       -webkit-appearance: none; 
}


5、ios和android下觸控元素時出現半透明灰色遮罩

Element {
       -webkit-tap-highlight-color:rgba(255,255,255,0) ;

      或者

       -webkit-tap-highlight-color:none;
}
設定alpha值為0就可以去除半透明灰色遮罩,備註:transparent的屬性值在android下無效。

後面一篇文章有詳細介紹,地址:點選連結

6、active相容處理

<body ontouchstart="">


7、動畫定義3D啟用硬體加速

Element {
       -webkit-transform:translate3d(0, 0, 0) 
       transform: translate3d(0, 0, 0); 
}
注意:3D變形會消耗更多的記憶體與功耗

8、Retina屏的1px邊框

Element{
       border-width: thin; 
}

9、旋轉螢幕時,字型大小調整的問題

html, body, form, fieldset, p, div, h1, h2, h3, h4, h5, h6 {
       -webkit-text-size-adjust:100%; 
}


10、transition閃屏

/設定內嵌的元素在 3D 空間如何呈現:保留3D /

-webkit-transform-style: preserve-3d;


/ 設定進行轉換的元素的背面在面對使用者時是否可見:隱藏 /

-webkit-backface-visibility:hidden;


11、圓角bug

某些Android手機圓角失效

background-clip: padding-box;

補充知識精靈圖的使用:

1.精靈圖:多個小圖片組合成一張大圖片。

左邊定寬,右邊自適應(佈局)

左邊定寬的盒子新增:float:left;

右邊自適應的盒子新增:overflow:hidden;

 若有不足請多多指教!希望給您帶來幫助!