2011-02-23 44 views
2

我正在使用自定義jQuery select複選框列表,它與默認選擇不同,可以使用複選框選擇多個對象。這支持ThemeRoller,但由於我的頁面上的其他控件是原生html(選擇,按鈕等),我希望自定義選擇也看起來很原生。IE Windows主題,CSS和當前風格

我爲Win XP IE 7創建了一個基於Win XP IE 7的樣式,但如果用戶不使用XP或者具有不同的主題,例如它看起來很有趣。 Server 2003.主要問題是邊框顏色和樣式。

我曾嘗試使用頁面上的本地控制越來越邊框屬性:

var borderStyle = select.currentStyle.borderStyle; //returns none 
var borderWidth = select.currentStyle.borderWidth; //returns 1 
var borderColor = select.currentStyle.borderColor; //returns #fffff 

但這些值是不正確的(見代碼註釋),我期待它返回一個堅實的淡藍色的邊框。我也嘗試過select.style.border及其變體,但沒有運氣。

有沒有一種方法可以正確檢測Internet Explorer中選擇的本機/默認邊框樣式,然後將此相同樣式應用於我的自定義控件?

+1

您可能會嘗試檢查xp主題本身,因爲有些腳本可以做,例如http://notetodogself.blogspot.com/2010/03/jquery-detect-windows-xp-theme.html – schellmax 2011-02-23 09:58:29

回答

1

這聽起來像你要找的是CSS2 System Colors

在CSS2中,定義了許多預設的顏色名稱,它們映射到操作系統的默認顏色。

所以,你可以,例如定義按鈕CSS是這樣的:

.mybutton {background: ButtonFace;} 

...,他們會拿起操作系統使用的按鈕的顏色。

不利的一面是這些系統顏色現在在CSS3中已棄用,這意味着您可能不應該使用它們,並且不保證瀏覽器支持(並且可能在未來的版本中將其刪除)。

他們被棄用的原因是因爲操作系統使用的顏色列表實際上在每個操作系統,即使是相同操作系統的不同版本之間都有所不同。

例如,該規範包含WindowFrame的定義,但當然在最新版本的Windows中,窗口框架具有透明漸變效果,根據規範在單一顏色的上下文中不再有意義。另一個例子是該規範定義了3D高光和陰影的顏色,但是當然3D效果現在比規範定義時更細微。

如果你想給它一個想試試,你可以找到W3C的這裏系統顏色規格:http://www.w3.org/TR/CSS2/ui.html#system-colors

希望有所幫助。