2011-04-24 81 views
2

有沒有CSS黑客檢測到只有Android瀏覽器寫CSS?不是所有的WebKit瀏覽器 - 我想爲iPhone和Android瀏覽器上的某些元素編寫不同的CSS。有沒有什麼辦法可以檢測出只有CSS的Android瀏覽器?

例如http://paulirish.com/2009/browser-specific-css-hacks/

我想針對Android的瀏覽器CSS破解。

+3

我會避免,親自。從長遠來看,瀏覽器檢測總是很麻煩。這就是爲什麼我們已經進入了媒體查詢之類的問題,以尋求瀏覽器的特性,而不是「這是哪種瀏覽器?」 – Parrots 2011-04-24 15:25:05

+2

CSS不是爲了處理這種東西而設計的。 – BoltClock 2011-04-24 15:26:04

+1

有一些特定於Android的怪癖,例如[涉及「自動適應網頁」功能的呈現問題](http://stackoverflow.com/questions/8508889/android-autofit-mode-causing-issues-with-css-寬度在-網頁)。針對Android瀏覽器的一些規則(如no-op背景圖像:解決該問題的方法)將非常有用。 – supervacuo 2012-11-04 18:21:45

回答

2

您引用的CSS黑客攻擊利用了CSS中的缺陷以針對特定的瀏覽器(通常用黑客來獲取一些與IE 6 /等傳統瀏覽器一起工作的東西)。 CSS本身不能執行瀏覽器檢測,尤其是不需要操作系統檢測,這正是你正在尋找的。

我對您的問題上述評論是說(不這樣做!),你可以抓住用戶代理字符串,它包含的「Android」作爲操作系統:

Mozilla/5.0 (Linux; U; Android 1.1; en-gb; dream) AppleWebKit/525.10+ (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2 – G1 Phone 

我不能如果這是100%可靠的(儘管理由是每個Android手機都應該這樣報告),並且沒有什麼可以阻止它在未來發生變化。您需要在Javascript中執行此檢測並讓JS加載您的用於Android的自定義CSS文件(讓它爲文檔添加另一個樣式標籤),或者在您的服務器端編程(ASP/PHP等)中執行檢測並讓它將風格標籤回傳給您的來源。

-1

目前的最佳做法是使用功能檢測而不是瀏覽器/操作系統檢測。有一個名爲Modernizr的JavaScript庫可能會有所幫助。我相信它也有一些技巧可以讓非CSS3瀏覽器應對一些新的CSS3標籤,如headerfooter

+0

是的,功能檢測是完美的...但也有瀏覽器錯誤。同樣微不足道的CSS 2在桌面webkit上完美工作,並在android瀏覽器瀏覽器上給出一些意想不到的結果。 – SilentImp 2015-04-30 17:08:57

相關問題