2013-08-22 107 views
0

我正在研究Phonegap應用程序,並且存在CSS行高和邊距問題,因爲我編寫的Phonegap應用程序與我的Android設備上的字形字體呈現不同的問題在我的桌面上。有沒有一種方法來專門爲Android指定CSS

有沒有一種方法可以專門爲Android渲染引擎指定CSS樣式,類似於您在CSS中爲跨瀏覽器功能(例如。-webkit,-moz等)常見的樣式?

我使用的字體是http://www.entypo.com/,我遇到的CSS樣式特別是行高和邊距。我整個應用程序的常規字體都沒有遇到這樣的問題。

回答

1

如果您可以檢測到設備/環境,那麼您的服務就是專門針對該設備上的元素進行定位,就像在頁面的<html>標記中附加一個類一樣簡單。然後從這個根類調用你的樣式聲明。例如:

.wrapper { 
    background: blue; /* will apply to all documents independent of device */ 
} 

.android .wrapper { 
    background: green; /* will only apply to documents with the .android base class */ 
} 

至於檢測設備,這是一個完全不同的問題,但這種方法將工作,假設您可以檢測到設備。

+0

感謝您的建議。根據你的回答,假設沒有辦法爲Android渲染引擎專門聲明css風格,就像你可以爲各種瀏覽器一樣,這是正確的嗎? – activelogic

+0

那麼,你並不是真正針對設備本身,而是針對該設備的瀏覽器。因此,如果您知道該瀏覽器存在限制,並且您知道如何定位該瀏覽器,則可以使用上述方法應用特定的樣式。但據我所知,Android/Google手機瀏覽器沒有「Android」前綴。 – monners

+0

感謝您的快速響應,我已經實施了您的解決方案,它的工作就像一個魅力。太糟糕了,沒有在Android設備的CSS聲明:)。 – activelogic

0

在你的Android的代碼,你可以在你loadUrl()

this.sendJavascript("document.getElementsByTagName('body')[0].className = 'android'"); 

添加到您的onCreate()這將增加一個「機器人」類的<body>,讓你使用特定的CSS選擇器爲您的應用程序的Android版本。如果您已經向您的<body>申請課程,您可以做

this.sendJavascript("document.getElementsByTagName('body')[0].className += ' android'"); 
+0

感謝您的建議。根據你的回答,假設沒有辦法爲Android渲染引擎專門聲明css風格,就像你可以爲各種瀏覽器一樣,這是正確的嗎? – activelogic

+0

最接近你可能會得到的是通過使用-webkit,但正如你可能已經看到它不僅會影響Android。據我所知,沒有一個特定於Android設備的CSS選擇器。 – jprofitt

相關問題