【问题标题】:IE Windows Theme, CSS and Current StyleIE Windows 主题、CSS 和当前样式
【发布时间】:2011-02-23 20:06:19
【问题描述】:

我正在使用自定义 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

但是这些值是不正确的(见代码 cmets),我期待它返回一个纯浅蓝色边框。我也尝试过 select.style.border 及其变体,但没有成功。

有没有一种方法可以正确检测 Internet Explorer 中选择的本机/默认边框样式,然后将相同的样式应用于我的自定义控件?

【问题讨论】:

标签: javascript jquery css internet-explorer


【解决方案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

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 2011-05-05
    • 1970-01-01
    • 2013-12-20
    • 2013-11-25
    • 2014-10-13
    • 2019-01-31
    • 2018-12-05
    • 2018-08-23
    • 2011-11-14
    相关资源
    最近更新 更多