2011-07-11 35 views
8

我有一個通過CSS文件格式化的WebView - 我動態地從應用程序中爲這個視圖生成HTML,就像Web服務器一樣。生成的HTML引用靜態CSS文件進行格式化。我有一個圖像格式化指令,例如:如何使用dip在webview css中指定圖片大小?

img { 
    width: 20px; 
    height: 20px; 
} 

爲了使這種設備無關我想使用浸寧可PX的寬度和高度測量。我找不出(也沒有找到)如何在css定義中指定dip爲單位。我嘗試過「dp」和「dip」,兩者都不起作用。這可以做到嗎?

我知道我可以通過<「target-densitydpi = high-dpi」>類型的選擇器選擇多個版本的CSS文件,但這意味着我將擁有重複的CSS文件,根據不同的設備密度大小的圖像。可行,但我更願意能夠在CSS文件中指定dip,並讓WebView爲我完成工作。

同樣可行的。將生成的內聯樣式表在HTML頭部並轉換浸PX爲特定設備,但本然後導致CSS定義和HTML代碼之間的耦合。可能比多個CSS文件(用於我的應用程序)更好,但是將CSS浸入CSS文件並完成它會好得多。

(我的圖片設計,讓無人工調整的屏幕密度的當前支持的範圍內)

回答

2

什麼單位是CSS可在這裏:

http://www.w3.org/TR/css3-values/#lengths

沒有dp或dip,所以我不確定你是如何得到這樣一個單位存在的想法。

相反,CSS規範說,像素大小應該縮放到設備相對大小。

這是理論。

的做法是,你可能需要動態生成CSS支持這種功能。

+0

由於該理論不成立的,我有兩個物理設備。 - 一個摩托羅拉Droid 2和LG VM670目前正在考慮設置字體大小body標籤來定義一個基準1個EM,然後使用EM值,如CSS的其餘內驟降,然後動態地確定body標籤的字體大小取決於物理設備上正確的價值。 我希望有一些(甚至沒有標準)在Android中的擴展,我沒有意識到,但可以利用。 – Colin

+0

作爲本文的附錄,請閱讀quirksmode的[本文](http://www.quirksmode.org/blog/archives/2010/04/a_pixel_is_not.html)。像素到CSS像素應該是一個用戶代理的責任(只是希望CSS規範將它稱爲不同於'像素',這是相當混亂)。 – Maarten

1

DP實際上是在/ 160,這樣你就可以在指定長度單位所有尺寸,如英寸或milimeters。當然,假設比例。

但不幸的是絕對大小在CSS不匹配物理mesurements,我剛剛檢查了它。 :(

相關問題