【原】[webkit移動開發筆記]之兼容iPhone4和iPhone5的方法


2012年8月份剛開始接觸前端移動開發,現在主要是android和ios系統的手機,一套代碼需要同時兼容android和ios,就android而言已經有N個型號的手機,如果css代碼在這些手機上解析有稍微差別或者出現bug,那么,做兼容是必不可少,事實上隨着手機版本的不斷更新,產生一些不同的體驗,這也可以理解為制造了bug~

半年多了,遇到了不少問題,解決問題的過程即辛苦又很開心,辛苦是因為剛接觸,很多知識都不懂,需要花費很多的時間去摸索遇到的困難,開心呢當然是接觸到新鮮的手機開發,感到比較興奮,學習了不少知識。好了,不多說,開始本次的主題,今天主要對iphone手機的兼容方法做總結。

摘要:

[iPhone 4帶來的革新,retina display絕對是最吸引眼球的一項。正是依賴這視網膜顯示屏,iPhone 4的分辨率達到了640×960 pixels,不過為了保持向下兼容性,它采用的仍然是320×480 points。也就是說,在不進行縮放的情況下,顯示普通圖片時,它會用4個像素來顯示圖片中的1個像素;而在顯示retina圖片時,每個像素都對應圖片中的1個像素。

如此一來,老的應用無需修改就可以在iPhone 4上運行了——雖然顯示效果差了點,但是不會出現只有左上角那1/4的區域有內容的情況。

在網頁中,pixel與point比值稱為device-pixel-ratio,普通設備都是1,iPhone 4是2,有些Android機型是1.5。]

那么-webkit-min-device-pixel-ratio:2可以用來區分iphone(4/4s/5)和其它的手機

iPhone4/4s的分辨率為640*960 pixels,DPI為是326,設備高度為480px

iPhone5的分辨率為640*1136 pixels,DPI依然是326,設備高度為568px

那么我們只需要判斷iphone手機的device-height(設備高)值即可區別iPhone4和iPhone5

使用css

通過 CSS3 的 Media Queries 特性,可以寫出兼容iPhone4和iPhone5的代碼~~

方式一,直接寫到樣式里面

 

@media (device-height:480px) and (-webkit-min-device-pixel-ratio:2){/* 兼容iphone4/4s */
.class{}
}
@media (device-height:568px) and (-webkit-min-device-pixel-ratio:2){/* 兼容iphone5 */
.class{}
}

/* 上面的寫法合並后 */
@media (device-height:480px) and (-webkit-min-device-pixel-ratio:2),(device-height:568px) and (-webkit-min-device-pixel-ratio:2){/* 兼容iphone4/4s5/5 */ 
.class{} 
}

 

方式二,鏈接到一個單獨的樣式表,把下面的代碼放在<head>標簽里

<link rel="stylesheet" media="(device-height: 480px) and (-webkit-min-device-pixel-ratio:2)" href="iphone4.css" />
<link rel="stylesheet" media="(device-height: 568px)and (-webkit-min-device-pixel-ratio:2)" href="iphone5.css" />

使用JS

//通過高度來判斷是否是iPhone 4還是iPhone 5
isPhone4inches = (window.screen.height==480);
isPhone5inches = (window.screen.height==568);

移動開發發展飛猛,各種新的設備也不斷的出現,我們在向后兼容的同時,也需要不斷術向前學習,趕上時代步伐~

參考資料:

iPhone 5 and iOS 6 for HTML5 developers, a big step forward: web inspector, new APIs and more

在iPhone 4上為視網膜顯示屏優化網頁圖片

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM