Javascript IE Windows主题、CSS和当前样式

Javascript IE Windows主题、CSS和当前样式,javascript,jquery,css,internet-explorer,Javascript,Jquery,Css,Internet Explorer,我使用的是自定义jQuery选择复选框列表,与默认的选择不同,它允许您使用复选框选择多个对象。这支持ThemeRoller,但由于我页面上的其余控件都是原生html(选择、按钮等),我希望自定义选择也看起来是原生的 我基于Win XP IE 7创建了一个样式,但是如果用户不使用XP或者有不同的主题,例如Server 2003,它当然看起来很有趣。主要问题是边界颜色和样式 我已尝试使用以下方法从页面上的本机控件获取边框属性: var borderStyle = select.currentStyl

我使用的是自定义jQuery选择复选框列表,与默认的选择不同,它允许您使用复选框选择多个对象。这支持ThemeRoller,但由于我页面上的其余控件都是原生html(选择、按钮等),我希望自定义选择也看起来是原生的

我基于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中正确检测select的本机/默认边框样式,然后将该样式应用于我的自定义控件?

听起来您要查找的是CSS2
系统颜色

在CSS2中,定义了许多预设颜色名称,这些名称映射到操作系统的默认颜色

例如,您可以在CSS中定义按钮,如下所示:

.mybutton {background: ButtonFace;}
…他们会选择操作系统用于按钮的颜色

不利的一面是,这些系统颜色现在在CSS3中已被弃用,这意味着您可能不应该使用它们,而且浏览器支持也不能保证(并且可能在将来的版本中被删除)

它们被弃用的原因是,几乎每个操作系统使用的颜色列表都不同,甚至同一操作系统的不同版本

例如,规范中包含了对
窗框的定义,但当然在最新版本的Windows中,窗框具有透明的渐变效果,根据规范,在单一颜色的环境中不再有意义。另一个示例是规范定义了3D高光和阴影的颜色,当然,3D效果现在比定义等级库时更加微妙

如果您想尝试一下,您可以在此处找到W3C的系统颜色规范:


希望这能有所帮助。

您可以尝试检查xp主题本身,就像一些脚本一样,例如