移動Web開發(fā)中的常見布局方式及一些常見問題

一周蹭、流式布局

1.1 什么是流式布局

流式布局就是百分比布局,通過盒子的寬度設(shè)置成百分比來根據(jù)屏幕的寬度來進行伸縮疲恢,不受固定像素的限制凶朗,內(nèi)容向兩側(cè)填充,同時會設(shè)定最小寬度和最大寬度显拳,適用于圖片比較多的首頁棚愤、門戶、電商等杂数。

在這里我們以京東的M站為例進行說明:

top.png
nav.png
navs.png

可以看到宛畦,在京東各個模塊的主容器中,都設(shè)置了最大最小寬度和寬度100%揍移,而在導(dǎo)航區(qū)塊中次和,由于一行有5個小區(qū)塊,所以設(shè)置了寬度為20%那伐,使得小區(qū)塊也能達到自適應(yīng)的效果踏施。

1.2 viewport

在移動端用來承載網(wǎng)頁的這個區(qū)域就是我們的視覺窗口viewport石蔗,這個區(qū)域可以設(shè)置高度寬度,可以按比例放大縮小畅形,而且能設(shè)置是否允許用戶自行縮放养距。

viewport.jpg
  • width:設(shè)置的是viewport寬度,可以設(shè)置device-width特殊值日熬。
  • initial-scale:初始縮放比棍厌,大于0的數(shù)字,一般設(shè)置為1.0碍遍。
  • maximum-scale:最大縮放比定铜,大于0的數(shù)字。
  • minimum-scale:最小縮放比怕敬,大于0的數(shù)字揣炕。
  • user-scalable:用戶是否可以縮放,yes或no(1或0)东跪。
<!--視口標(biāo)簽通可以使用 meta:vp + tab 來快速生成畸陡,通常我們可以設(shè)置為下邊這樣。-->
<meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=0"/>

1.3 移動端常見事件

1.3.1 touch事件

  • touchstart:當(dāng)手指觸碰屏幕時候發(fā)生虽填。不管當(dāng)前有多少只手指丁恭。
  • touchmove:當(dāng)手指在屏幕上滑動時連續(xù)觸發(fā)。通常我們再滑屏頁面斋日,會調(diào)用eventpreventDefault()可以阻止默認情況的發(fā)生:阻止頁面滾動牲览。
  • touchend:當(dāng)手指離開屏幕時觸發(fā)。
  • touchcancel:系統(tǒng)停止跟蹤觸摸時候會觸發(fā)恶守。例如在觸摸過程中突然頁面alert()一個提示框第献,此時會觸發(fā)該事件,這個事件比較少用兔港。

觸摸事件的響應(yīng)順序:

ontouchstart --> ontouchmove --> ontouchend --> onclick(300ms延時)庸毫。

1.3.2 event事件

  • originalEvent:(原生事件)是jquery封裝的事件。?
  • targetTouches:目標(biāo)元素的所有當(dāng)前觸摸衫樊。
  • changedTouches:頁面上最新更改的所有觸摸飒赃。
  • touches:頁面上的所有觸摸。注意:在touchend事件的時候event只會記錄changedtouches科侈。

二载佳、響應(yīng)式開發(fā)

2.1 響應(yīng)式開發(fā)簡介

2.1.1 什么是響應(yīng)式開發(fā)

在移動互聯(lián)日益成熟的時候,我們在桌面瀏覽器上開發(fā)的網(wǎng)頁已經(jīng)無法滿足移動設(shè)備的閱讀臀栈。

通常的做法是針對移動端單獨做一套特定的版本蔫慧。

但是如果終端越來越多那么你需要開發(fā)的版本就會越來越多(大屏移動設(shè)備普及)。

那么Ethan Marcotte在2010年5月份提出的一個概念挂脑,簡而言之藕漱,就是一個網(wǎng)站能夠兼容多個終端。

2.1.2 響應(yīng)式開發(fā)的前景

現(xiàn)在的移動設(shè)備屏幕越來越大崭闲。

越來越多的設(shè)計師也采用了這種設(shè)計肋联。

在新建站的一些網(wǎng)站現(xiàn)在普遍采用的響應(yīng)式開發(fā)。

那么在前端開發(fā)當(dāng)中也是一項必備的技能刁俭。

2.1.3 響應(yīng)式開發(fā)的原理

CSS3中的Media Query(媒介查詢)橄仍,通過查詢screen的寬度來指定某個寬度區(qū)間的網(wǎng)頁布局。

  • 超小屏幕:768px以下(移動設(shè)備)牍戚。
  • 小屏設(shè)備:768px-992px侮繁。
  • 中等屏幕:992px-1200px。
  • 寬屏設(shè)備:1200px以上如孝。

2.2 Bootstrap框架

2.2.1 Bootstrap簡介

  • 官方網(wǎng)站
  • Bootstrap中文網(wǎng)
  • 它是由Twitter的設(shè)計師Mark OttoJacob Thornton合作開發(fā)宪哩,是一個CSS/HTML框架。它提供了優(yōu)雅的HTMLCSS規(guī)范第晰,它即是由動態(tài)CSS語言Less寫成锁孟。
  • Bootstrap是基于HTML5CSS3開發(fā)的,它在jQuery的基礎(chǔ)上進行了更為個性化和人性化的完善茁瘦,形成一套自己獨有的網(wǎng)站風(fēng)格品抽,并兼容大部分jQuery插件。
  • Bootstrap中包含了豐富的Web組件甜熔,根據(jù)這些組件圆恤,可以快速的搭建一個漂亮、功能完備的網(wǎng)站腔稀。其中包括以下組件:下拉菜單盆昙、按鈕組、按鈕下拉菜單、導(dǎo)航、導(dǎo)航條损离、路徑導(dǎo)航缅糟、分頁、排版抗悍、縮略圖、警告對話框、進度條们镜、媒體對象等。

2.2.2 Bootstrap常用樣式

  • container類:用于定義一個固定寬度且居中的版心润歉。

    <div class="topbar">
      <div class="container">
        <!--
          此處的代碼會顯示在一個固定寬度且居中的容器中
          該容器的寬度會跟隨屏幕的變化而變化
        -->
      </div>
    </div>
    
  • 柵格系統(tǒng)Bootstrap中定義了一套響應(yīng)式的網(wǎng)格系統(tǒng)模狭,其使用方式就是將一個容器劃分成12列,然后通過col-xx-xx的類名控制每一列的占比踩衩。

    1. row類

      • 因為每一個列默認有一個15px的左右外邊距嚼鹉。
      • row類的一個作用就是通過左右-15px屏蔽掉這個邊距贩汉。
      <div class="container">
        <div class="row"></div>
      </div>
      
    2. col-xx-x類

      • 第一個連接符后邊寫屏幕尺寸,有xs超小屏幕 手機(<768px)锚赤、sm小屏幕 平板 (≥768px)匹舞、md中等屏幕 桌面顯示器(≥992px)、lg大屏幕 大桌面顯示器 (≥1200px)四種线脚。
      • 第二個連接符后邊表示對應(yīng)的份數(shù)赐稽,占12份中的幾份。
      <div class="row">
        <div class="col-md-2 text-center"></div>
        <div class="col-md-5 text-center"></div>
        <div class="col-md-2 text-center"></div>
        <div class="col-md-3 text-center"></div>
      </div>
      
  • hidden類:設(shè)置在不同的屏幕下隱藏浑侥。

    <div class="hidden-xs,hidden-sm,hidden-md,hidden-lg">
    
    </div>
    
  • text-xx類:設(shè)置文字的對齊方式姊舵。

    text-center   文本居中
    text-left         文本左對齊
    text-right    文本右對齊
    
  • pull-xx類:設(shè)置浮動。

    pull-left         左浮動類
    pull-right    右浮動類
    
  • center-block類:讓一個固定寬度的元素居中寓落。

2.2.3 字體圖標(biāo)

  • 字體圖標(biāo):

    @font-face {
      font-family: 'XXX';
      src: url('../font/MiFie-Web-Font.eot') format('embedded-opentype'), 
      url('../font/MiFie-Web-Font.svg') format('svg'), 
      url('../font/MiFie-Web-Font.ttf') format('truetype'), 
      url('../font/MiFie-Web-Font.woff') format('woff');
    }
    
  • 字體文件格式:

    • eotembedded-opentype
    • svgsvg
    • ttftruetype
    • woffwoff

2.2.4 輪播圖插件 Carousel

  • 基本的輪播圖實現(xiàn):

    <!-- 
      以下容器就是整個輪播圖組件的整體括丁,
      注意該盒子必須加上 class="carousel slide" data-ride="carousel" 表示當(dāng)前是一個輪播圖
      bootstrap.js會自動為當(dāng)前元 素添加圖片輪播的特效
    -->
    <div id="輪播圖的ID" class="carousel slide" data-ride="carousel">
      <!-- ol標(biāo)簽是圖片輪播的控制點 -->
      <ol class="carousel-indicators">
        <!-- 
          每一個li就是一個單獨的控制點
            data-target屬性就是指定當(dāng)前控制點控制的是哪一個輪播圖,其目的是如果界面上有多個輪播圖零如,便于區(qū)分到底控制哪一個
            data-slide-to屬性是指當(dāng)前的li元素綁定的是第幾個輪播項
          注意躏将,默認必須給其中某個li加上active,展示的時候就是焦點項目
        -->
        <li data-target="#輪播圖的ID" data-slide-to="0" class="active"></li>
        <li data-target="#輪播圖的ID" data-slide-to="1"></li>
        <!-- ...更多的 -->
      </ol>
      <!-- 
        .carousel-inner是所有輪播項的容器盒子考蕾,
        注意role="listbox"代表當(dāng)前div是一個列表盒子祸憋,作用就是給當(dāng)前div添加一個語義
      -->
      <div class="carousel-inner" role="listbox">
        <!-- 每一個.item就是單個輪播項目,注意默認要給第一個輪播項目加上active肖卧,表示為焦點 -->
        <div class="item active">
          <!-- 輪播項目中展示的圖片 -->
          ![](example.jpg)
          <div class="carousel-caption">
            <!-- 標(biāo)題或說明性文字蚯窥,如果不需要,直接刪除當(dāng)前div.carousel-caption -->
          </div>
        </div>
        <div class="item">
          <!-- ... -->
        </div>
        <!-- ... -->
      </div>
      <!-- 圖片輪播上左右兩個控制按鈕塞帐,分別點擊可以滾動到上一張和下一張 -->
      <!-- 此處需要注意的是 該a鏈接的href屬性必須指向需要控制的輪播圖ID -->
      <!-- 另外a鏈接中的data-slide="prev"代表點擊該鏈接會滾到上一張拦赠,如果設(shè)置為next的話則相反 -->
      <a class="left carousel-control" href="#輪播圖的ID" role="button" data-slide="prev">
        <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
        <span class="sr-only">上一張</span>
      </a>
      <a class="right carousel-control" href="#輪播圖的ID" role="button" data-slide="next">
        <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
        <span class="sr-only">下一張</span>
      </a>
    </div>
    

2.2.5 函數(shù)庫 underscoreJS

  • _.template

    <ol class="carousel-indicators">
      <!--渲染的HTML字符串-->
    </ol>
    <div class="carousel-inner" role="listbox">
      <!--渲染的HTML字符串-->
    </div>
    
    /*取到模版當(dāng)中的字符串*/
    var pointTemplateStr = $('#point_template').html();
    var imageTemplateStr = $('#image_template').html();
    /*轉(zhuǎn)化成模版函數(shù)*/
    var pointTemplate = _.template(pointTemplateStr);
    var imageTemplate = _.template(imageTemplateStr);
    /*傳入數(shù)據(jù) 解析成 html 字符*/
    var pointHtml = pointTemplate({model:data});
    var imageHtml = imageTemplate({model:data,isMobile:isMobile});//我們只需要再加一個屬性
    /*把html字符串渲染在頁面當(dāng)中*/
    $('.carousel-indicators').html(pointHtml);
    $('.carousel-inner').html(imageHtml);
    
    <!--點模版-->
    <script type="text/template" id="point_template">
        <%_.each(model,function(obj,i){%>
            <li data-target="#carousel-example-generic" data-slide-to="<%=i%>" class="<%=(i==0?'active':'')%>"></li>
        <%})%>
    </script>
    <!--圖片模版-->
    <script type="text/template" id="image_template">
        <%_.each(model,function(obj,i){%>
            <div class="item <%=(i==0?'active':'')%>">
                <% if(isMobile){ %>
                    <a href="#" class="m_imgBox">
                        <img src="<%=obj.img%>" alt=""/>
                    </a>
                <%} else {%>
                    <a href="#" class="pc_imgBox" style="background-image:url(<%=obj.bac%>)"></a>
                <%}%>
            </div>
        <%})%>
    </script>
    

三、rem布局

準(zhǔn)備編輯這段時發(fā)現(xiàn)簡書上已經(jīng)有作者寫了關(guān)于rem布局的介紹葵姥,并且他的設(shè)置比我所用的更加簡潔荷鼠,貼上地址供大家學(xué)習(xí)參考。
手機端頁面自適應(yīng)解決方案—rem布局進階版(附源碼示例)

四榔幸、移動web開發(fā)中的常見問題

4.1 移動端如何定義字體font-family?

三大手機系統(tǒng)的字體:?

  • iOS 系統(tǒng)
    • 默認中文字體是Heiti SC
    • 默認英文字體是Helvetica
    • 默認數(shù)字字體是HelveticaNeue
    • 無微軟雅黑字體
  • Android 系統(tǒng)
    • 默認中文字體是Droidsansfallback
    • 默認英文和數(shù)字字體是Droid Sans?
    • 無微軟雅黑字體
  • Winphone 系統(tǒng)
    • 默認中文字體是Dengxian(方正等線體)
    • 默認英文和數(shù)字字體是Segoeod
    • 無微軟雅黑字體

各個手機系統(tǒng)有自己的默認字體允乐,且都不支持微軟雅黑,如無特殊需求削咆,手機端無需定義中文字體牍疏,使用系統(tǒng)默認英文字體和數(shù)字字體可使用Helvetica,三種系統(tǒng)都支持拨齐。

/* 移動端定義字體的代碼 */
body{
  font-family:Helvetica;
}

4.2 移動端字體單位font-size選擇px還是rem?

  • 對于只需要適配手機設(shè)備鳞陨,使用px即可。

  • 對于需要適配各種移動設(shè)備瞻惋,使用rem厦滤,例如只需要適配iPhoneiPad等分辨率差別比較挺大的設(shè)備援岩。

  • rem配置參考:

    html {font-size:10px}
    @media screen and (min-width:480px) and (max-width:639px) {
        html {
            font-size: 15px
        }
    }
    @media screen and (min-width:640px) and (max-width:719px) {
        html {
            font-size: 20px
        }
    }
    @media screen and (min-width:720px) and (max-width:749px) {
        html {
            font-size: 22.5px
        }
    }
    @media screen and (min-width:750px) and (max-width:799px) {
        html {
            font-size: 23.5px
        }
    }
    @media screen and (min-width:800px) and (max-width:959px) {
        html {
            font-size: 25px
        }
    }
    @media screen and (min-width:960px) and (max-width:1079px) {
        html {
            font-size: 30px
        }
    }
    @media screen and (min-width:1080px) {
        html {
            font-size: 32px
        }
    }
    

4.3 移動端touch事件(區(qū)分webkit和winphone)有哪些?

當(dāng)用戶手指放在移動設(shè)備在屏幕上滑動會觸發(fā)的touch事件:

  • 以下支持webkit
    • touchstart——當(dāng)手指觸碰屏幕時候發(fā)生掏导。不管當(dāng)前有多少只手指窄俏。
    • touchmove——當(dāng)手指在屏幕上滑動時連續(xù)觸發(fā)。通常我們再滑屏頁面碘菜,會調(diào)用event``preventDefault()可以阻止默認情況的發(fā)生:阻止頁面滾動。
    • touchend——當(dāng)手指離開屏幕時觸發(fā)限寞。
    • touchcancel——系統(tǒng)停止跟蹤觸摸時候會觸發(fā)忍啸。例如在觸摸過程中突然頁面alert()一個提示框,此時會觸發(fā)該事件履植,這個事件比較少用计雌。
  • 以下支持winphone 8
    • MSPointerDown——當(dāng)手指觸碰屏幕時候發(fā)生。不管當(dāng)前有多少只手指玫霎。
    • MSPointerMove——當(dāng)手指在屏幕上滑動時連續(xù)觸發(fā)凿滤。通常我們再滑屏頁面,會調(diào)用csshtml{-ms-touch-action:none;}可以阻止默認情況的發(fā)生:阻止頁面滾動庶近。
    • MSPointerUp——當(dāng)手指離開屏幕時觸發(fā)翁脆。

4.4 如何解決移動端click屏幕產(chǎn)生200-300ms的延遲響應(yīng)問題?

移動設(shè)備上的web網(wǎng)頁是有300ms延遲的鼻种,往往會造成按鈕點擊延遲甚至是點擊失效反番。

解決方案

  • fastclick可以解決在手機上點擊事件的300ms延遲。
  • zeptotouch模塊叉钥,tap事件也是為了解決在click的延遲問題罢缸。

觸摸事件的響應(yīng)順序

  1. ontouchstart
  2. ontouchmove
  3. ontouchend
  4. onclick

解決300ms延遲的問題,也可以通過綁定ontouchstart事件投队,加快對事件的響應(yīng)枫疆。

4.5 什么是Retina 顯示屏,帶來了什么問題敷鸦?

retina:一種具備超高像素密度的液晶屏息楔,同樣大小的屏幕上顯示的像素點由1個變?yōu)槎鄠€,如在同樣帶下的屏幕上轧膘,蘋果設(shè)備的retina顯示屏中钞螟,像素點1個變?yōu)?個。

在高清顯示屏中的位圖被放大谎碍,圖片會變得模糊鳞滨,因此移動端的視覺稿通常會設(shè)計為傳統(tǒng)PC的2倍

那么蟆淀,前端的應(yīng)對方案是:

設(shè)計稿切出來的圖片長寬保證為偶數(shù)拯啦,并使用backgroud-size把圖片縮小為原來的1/2澡匪。

//例如圖片寬高為:200px*200px,那么寫法如下
.css{width:100px;height:100px;background-size:100px 100px;}

其它元素的取值為原來的1/2褒链,例如視覺稿40px的字體唁情,使用樣式的寫法為20px。

.css{font-size:20px}

4.6 移動端如何取消touch高亮效果甫匹?

在做移動端頁面時甸鸟,會發(fā)現(xiàn)所有a標(biāo)簽在觸發(fā)點擊時或者所有設(shè)置了偽類:active的元素,默認都會在激活狀態(tài)時兵迅,顯示高亮框抢韭,如果不想要這個高亮,那么你可以通過css以下方法來進行全局的禁止:

html {
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
  • ios用戶點擊一個鏈接恍箭,會出現(xiàn)一個半透明灰色遮罩, 如果想要禁用刻恭,可設(shè)置-webkit-tap-highlight-coloralpha值為0,也就是屬性值的最后一位設(shè)置為0就可以去除半透明灰色遮罩扯夭。

    a,button,input,textarea{-webkit-tap-highlight-color: rgba(0,0,0,0;)}
    
  • android用戶點擊一個鏈接鳍贾,會出現(xiàn)一個邊框或者半透明灰色遮罩, 不同生產(chǎn)商定義出來額效果不一樣,可設(shè)置-webkit-tap-highlight-color的alpha值為0去除部分機器自帶的效果交洗。

    a,button,input,textarea{
        -webkit-tap-highlight-color: rgba(0,0,0,0;)
        -webkit-user-modify:read-write-plaintext-only; 
    }
    

    -webkit-user-modify有個副作用骑科,就是輸入法不再能夠輸入多個字符。

    另外构拳,有些機型去除不了纵散,如小米2。對于此類問題還有個辦法隐圾,不使用a或者input標(biāo)簽伍掀,直接用div標(biāo)簽。

  • winphone系統(tǒng)a暇藏、input標(biāo)簽被點擊時產(chǎn)生的半透明灰色背景怎么去掉蜜笤?

    <meta name="msapplication-tap-highlight" content="no">
    

4.7 關(guān)于webkit表單的幾個問題

  • webkit表單元素的默認外觀怎么重置?

    .css{-webkit-appearance:none;}
    
  • webkit表單輸入框placeholder的顏色值能改變么盐碱?

    input::-webkit-input-placeholder{color:#AAAAAA;}
    input:focus::-webkit-input-placeholder{color:#EEE}
    
  • webkit表單輸入框placeholder的文字能換行么把兔?

    iOS可以,Android不行瓮顽。
    
  • 如何禁止文本縮放?县好?

    當(dāng)移動設(shè)備橫豎屏切換時,文本的大小會重新計算暖混,進行相應(yīng)的縮放缕贡,當(dāng)我們不需要這種情況時,可以選擇禁止:

    html {
      -webkit-text-size-adjust: 100%;
    }
    

    需要注意的是,PC端的該屬性已經(jīng)被移除晾咪,該屬性在移動端要生效收擦,必須設(shè)置meta viewport

4.8 如何在移動端禁止用戶選中內(nèi)容谍倦?

如果你不想用戶可以選中頁面中的內(nèi)容塞赂,那么你可以在css中禁掉:

.user-select-none {
  -webkit-user-select: none;  /* Chrome all / Safari all */
  -moz-user-select: none;     /* Firefox all (移動端不需要) */
  -ms-user-select: none;      /* IE 10+ */      
}

4.9 如何模擬按鈕的hover效果?

移動端觸摸按鈕的效果昼蛀,可明示用戶有些事情正要發(fā)生宴猾,是一個比較好體驗,但是移動設(shè)備中并沒有鼠標(biāo)指針叼旋,使用csshover并不能滿足我們的需求鳍置,還好國外有個激活cssactive效果,代碼如下:

<html>
<head>
<meta charset="utf-8">
<meta content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no" name="viewport">
<meta content="yes" name="apple-mobile-web-app-capable">
<meta content="black" name="apple-mobile-web-app-status-bar-style">
<meta content="telephone=no" name="format-detection">
<meta content="email=no" name="format-detection">
<style type="text/css">
a{-webkit-tap-highlight-color: rgba(0,0,0,0);}
.btn-blue{display:block;height:42px;line-height:42px;text-align:center;border-radius:4px;font-size:18px;color:#FFFFFF;background-color: #4185F3;}
.btn-blue:active{background-color: #357AE8;}
</style>
</head>
<body>

<div class="btn-blue">按鈕</div>

<script type="text/javascript">
document.addEventListener("touchstart", function(){}, true)
</script>
</body>
</html>
兼容性ios5+送淆、部分android 4+、winphone 8

要做到全兼容的辦法怕轿,可通過綁定ontouchstartontouchend來控制按鈕的類名偷崩。

<html>
<head>
<meta charset="utf-8">
<meta content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no" name="viewport">
<meta content="yes" name="apple-mobile-web-app-capable">
<meta content="black" name="apple-mobile-web-app-status-bar-style">
<meta content="telephone=no" name="format-detection">
<meta content="email=no" name="format-detection">
<style type="text/css">
a{-webkit-tap-highlight-color: rgba(0,0,0,0);}
.btn-blue{display:block;height:42px;line-height:42px;text-align:center;border-radius:4px;font-size:18px;color:#FFFFFF;background-color: #4185F3;}
.btn-blue-on{background-color: #357AE8;}
</style>
</head>
<body>

<div class="btn-blue">按鈕</div>

<script type="text/javascript">
var btnBlue = document.querySelector(".btn-blue");
btnBlue.ontouchstart = function(){
    this.className = "btn-blue btn-blue-on"
}
btnBlue.ontouchend = function(){
    this.className = "btn-blue"
}
</script>
</body>
</html>

4.10 屏幕旋轉(zhuǎn)的事件和樣式

  • 事件window.orientation,取值:正負90表示橫屏模式撞羽、0和180表現(xiàn)為豎屏模式阐斜。

    window.onorientationchange = function(){
                switch(window.orientation){
                    case -90:
                    case 90:
                    alert("橫屏:" + window.orientation);
                    case 0:
                    case 180:
                    alert("豎屏:" + window.orientation);
                    break;
                }
    } 
    
  • 樣式

    //豎屏?xí)r使用的樣式
    @media all and (orientation:portrait) {
        .css{}
    }
    
    //橫屏?xí)r使用的樣式
    @media all and (orientation:landscape) {
        .css{}
    }
    

4.11 移動端常見的一些功能

  • 搖一搖功能:

    HTML5 deviceMotion:封裝了運動傳感器數(shù)據(jù)的事件,可以獲取手機運動狀態(tài)下的運動加速度等數(shù)據(jù)诀紊。

  • 手機拍照和上傳圖片:

    <input type="file">的accept 屬性
    <!-- 選擇照片 -->
    <input type=file accept="image/*">
    <!-- 選擇視頻 -->
    <input type=file accept="video/*">
    

    使用總結(jié):

    1. iOS有拍照谒出、錄像、選取本地圖片功能邻奠。
    2. 部分android只有選取本地圖片功能笤喳。
    3. winphone不支持。
    4. input控件默認外觀丑陋碌宴。
  • 消除transition閃屏:

    .css{
        /*設(shè)置內(nèi)嵌的元素在 3D 空間如何呈現(xiàn):保留 3D*/
        -webkit-transform-style: preserve-3d;
        /*(設(shè)置進行轉(zhuǎn)換的元素的背面在面對用戶時是否可見:隱藏)*/
        -webkit-backface-visibility: hidden;
    }
    
  • 開啟硬件加速:

    1. 解決頁面閃白杀狡。
    2. 保證動畫流暢。
    .css {
         -webkit-transform: translate3d(0, 0, 0);
         -moz-transform: translate3d(0, 0, 0);
         -ms-transform: translate3d(0, 0, 0);
         transform: translate3d(0, 0, 0);
      }
    
  • android上去掉語音輸入按鈕:

    input::-webkit-input-speech-button {display: none}
    

4.12 如何禁止百度轉(zhuǎn)碼贰镣?

<meta http-equiv="Cache-Control" content="no-siteapp" />

4.13 怎樣默認優(yōu)先使用最新版本IE和Chrome呜象?

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市碑隆,隨后出現(xiàn)的幾起案子恭陡,更是在濱河造成了極大的恐慌,老刑警劉巖上煤,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件休玩,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機哥捕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門牧抽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人遥赚,你說我怎么就攤上這事扬舒。” “怎么了凫佛?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵讲坎,是天一觀的道長。 經(jīng)常有香客問我愧薛,道長晨炕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任毫炉,我火速辦了婚禮瓮栗,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘瞄勾。我一直安慰自己费奸,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布进陡。 她就那樣靜靜地躺著愿阐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪趾疚。 梳的紋絲不亂的頭發(fā)上缨历,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天,我揣著相機與錄音糙麦,去河邊找鬼辛孵。 笑死,一個胖子當(dāng)著我的面吹牛赡磅,可吹牛的內(nèi)容都是我干的觉吭。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼仆邓,長吁一口氣:“原來是場噩夢啊……” “哼鲜滩!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起节值,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤徙硅,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后搞疗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嗓蘑,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡须肆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了桩皿。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片豌汇。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖泄隔,靈堂內(nèi)的尸體忽然破棺而出拒贱,到底是詐尸還是另有隱情,我是刑警寧澤佛嬉,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布逻澳,位于F島的核電站,受9級特大地震影響暖呕,放射性物質(zhì)發(fā)生泄漏斜做。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一湾揽、第九天 我趴在偏房一處隱蔽的房頂上張望瓤逼。 院中可真熱鬧,春花似錦库物、人聲如沸霸旗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至皿桑,卻和暖如春毫目,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背诲侮。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工镀虐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人沟绪。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓刮便,卻偏偏與公主長得像,于是被迫代替她去往敵國和親绽慈。 傳聞我的和親對象是個殘疾皇子恨旱,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J的外補...
    _Yfling閱讀 13,754評論 1 92
  • H5頁面窗口自動調(diào)整到設(shè)備寬度坝疼,并禁止用戶縮放頁面//一搜贤、HTML頁面結(jié)構(gòu) // width 設(shè)置viewp...
    tiandashu閱讀 16,721評論 0 9
  • meta基礎(chǔ)知識 H5頁面窗口自動調(diào)整到設(shè)備寬度,并禁止用戶縮放頁面 忽略將頁面中的數(shù)字識別為電話號碼 忽略And...
    Mycro閱讀 879評論 0 11
  • 選擇qi:是表達式 標(biāo)簽選擇器 類選擇器 屬性選擇器 繼承屬性: color钝凶,font仪芒,text-align,li...
    wzhiq896閱讀 1,754評論 0 2
  • 主教練就是球隊的核心人物饺蔑,現(xiàn)役聯(lián)盟中有像科爾和波波維奇這種有極強臨場指揮能力的教練锌介,也有像里弗斯這種戰(zhàn)術(shù)大師,甚至...
    zoneball閱讀 374評論 0 0