開發移動端頁面瀏覽器
視口是指瀏覽器的可視區域,移動端的視口究竟是多寬呢?app
咱們可使用谷歌瀏覽器的移動端調試工具,來訪問百度的搜索結果,能夠看到網頁明顯被縮小了,並且頁面寬度定格在980px。iphone
面對這樣的狀況怎麼辦呢?咱們固然但願手機的視口寬度和實際的屏幕寬度保持一致,就像PC端那樣。好在HTML給了咱們設置移動端視口寬度的能力,只須要在 head 元素中加入 meta 元素,便可設置移動端視口寬度(默認980px),代碼格式以下:工具
然而,不一樣手機的實際寬度是不同的,並不全都是iphone X的尺寸(375px),這又如何處理呢?字體
好在HTML給咱們提供了一個關鍵字 device-width ,該關鍵是讀取當前移動設備的寬度。所以, 咱們只須要使用下面的代碼,便可讓全部移動設備的視口寬度和其自身的寬度相等。spa
這樣就解決了移動端視口寬度和自身寬度不一致的問題。scala
移動端誤觸形成的縮放問題調試
當用戶用手指在移動端滑動網頁的時候,手機每每提供下面的功能:ip
因爲移動端誤觸較多,而咱們的網頁原本就是專門爲移動端開發的,不管是尺寸仍是各類樣式,在默認的狀況下已經很是合適了,根本不須要用戶去縮放網頁(你會發現,幾乎全部app中的頁面, 都是不容許縮放的),所以,禁止用戶對網頁進行縮放是一個不錯的選擇。ci
具體的作法是在上一節中的 meta 元素中繼續加入內容:
在上面這句代碼中,出現了這一段代碼: initial-scale=1.0, minimum-scale=1.0, maximum- scale=1.0, user-scalable=0 ,它們的意思分別是:
initial-scale=1.0 :初始縮放比例爲1.0(原始大小),這句代碼的目的還不是放置用戶縮放的,書寫上它有其餘複雜的緣由,不過本文不涉及
minimum-scale=1.0 :網頁最小的縮小比例爲1.0(原始大小),設置這句代碼的目的是爲了放置某些程序(好比JS)無心中修改了網頁的縮小比例
maximum-scale=1.0 :網頁最大的放大比例爲1.0(原始大小),設置這句代碼的目的是爲了放置某些程序(好比JS)無心中修改了網頁的放大比例
user-scalable=0 :這句代碼纔是不容許用戶對網頁進行縮放
移動端元素的尺寸問題
咱們先看兩張移動端網頁的對比圖:
上面的對比圖,是同一個網頁在不一樣尺寸手機中的效果。仔細觀察,你會發現,網頁中的不少元素,隨着視口的寬度變大,尺寸也會隨之變大,不管是字體、高度、間隙都有這樣的特色。
這樣作的目的,是爲了保證網頁元素在不一樣尺寸的移動端中,顯示最優的尺寸。
這樣一來,就要求咱們在開發移動端的頁面時,當遇到字體大小、寬高、margin、padding等尺寸類的屬性時,不能設置固定的像素值。
不能設置像素值,那要設置什麼值呢?百分比嗎?
仔細思考,百分比也不行,好比字體設置爲百分比,就覺得着是相對於父元素的字體大小,只要父元素字體大小不變化,不管頁面視口是多寬,字體大小不會發生任何變化。並且百分比計算起來極其繁瑣,顯然不是合適的選擇。
考慮咱們的需求,咱們是要實現尺寸隨着視口寬度的變化而變化因而,聰明的開發者想出這樣一種辦法。
1. 首先,寫一段JS代碼,應用到網頁