1. 程式人生 > >web前段設計之痛:手機瀏覽器和pc瀏覽器的width:100%的自適應問題

web前段設計之痛:手機瀏覽器和pc瀏覽器的width:100%的自適應問題

Tips: 除錯 iPad 或 iPhone 可在設定中啟動除錯模式,在 Mac 中的 Safari 瀏覽器 同樣開啟開發者模式後,進行聯機除錯。功能彪悍。

最近在做一個頁面時,發現在 iPad 的 Safari 瀏覽器中背景顯示不全,定位到該 div 後發現所指定 css 的寬度為 100% ;

到百度搜索後發現,safari 中 viewport 預設寬度為 980px,若事先未指定其初始 viewport 寬度,則會預設按照 980px 處理。

可以預設初始化 viewport 寬度或在 css 中設定 min-width,但最簡單的方法可以在 head 標籤中初始化好 viewport。

 

詳見下方程式碼:

<metaname="viewport"content="width=網頁真實寬度, initial-scale=倍數值"/> 
假設網頁寬度為 960px 或 1080px,可在width中加入該值,並將 initial-scale 設定一個適合的倍數值。

例如一個頁面的寬度為 1080px,則設定為:

<metaname="viewport"content="width=1080, initial-scale=0.9"/> 
這樣不管載入前後切換橫屏還是豎屏,都可以友好顯示。【可參考:
股票配資
手機端與pc端的瀏覽對比
可是比如頭部部分設定為width:100%,而網頁中部最大寬度為預設:1200px,頭部和中部長度不一致。這個問題在pc端和手機的預設畫素不一致造成。該如和解決?
找了很多資料,終於找出來了:

在網頁的<head>中增加以上這句話,可以讓網頁的寬度自動適應手機螢幕的寬度:

  1. <metaname="viewport"content="width=device-width, initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=yes"/>
  2. <metaname
    ="apple-mobile-web-app-capable"content="yes"/>
  3. <metaname="format-detection"content="telephone=no"/>

第一行:width=device-width :表示寬度是裝置螢幕的寬度
initial-scale=1.0:表示初始的縮放比例
minimum-scale=0.5:表示最小的縮放比例
maximum-scale=2.0:表示最大的縮放比例
user-scalable=yes:表示使用者是否可以調整縮放比例
第二行:
設定iphone端頁面全屏。
第三行:
取消數字被識別為電話號碼。

如果是想要一開啟網頁,則自動以原始比例顯示,並且不允許使用者修改的話,則是:

  1. <metaname="viewport"content="width=device-width(這裡是可以變化的,根據你的其他div的寬度來設定), initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>

這樣子寫後,就可以把一些頁頭橫幅等的圖片的寬度都設定成style="width:100%",整個頁面在裝置上看起來就是全屏的了。【要把width=device-width 中的device-width換成你中部設定的畫素值,比如我的設定為1200px】 這樣問題就解決了。