0

我们的一个 CSS 文件使用-ms-high-contrast-adjust: none来确保即使在高对比度模式下也能显示一些背景特征。它在 IE10 和 IE11 上运行良好。现在我们正在尝试将相同的 CSS 移植到 IE9,显然它不被支持。

IE9 下的 -ms-high-contrast-*** 属性相当于什么?是否有其他方法可以欺骗浏览器不使用“高对比度模式”设置更改功能?

4

1 回答 1

2

没有等价物。

备注
-ms-high-contrast 媒体功能是在 Windows 8 中引入的。

这是ie10的。

您可以使用以下媒体查询对其进行测试:

@media screen and (-ms-high-contrast: active) {/* ... */}
@media screen and (-ms-high-contrast: black-on-white) { /* */ }
@media screen and (-ms-high-contrast: white-on-black) { /* */ }

http://msdn.microsoft.com/en-us/library/windows/apps/hh465764.aspx

一些开发人员使用它来针对 IE10 进行媒体查询:

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
   /* i-love-ie */
}

PS,这有点奇怪,您希望浏览器强制操作系统以特定方式显示,或者以特定方式在操作系统上显示。

[坚持,稍等]

我刚刚从 Steve Faulkner 那里找到了这篇文章:http: //blog.paciellogroup.com/2010/01/high-contrast-proof-css-sprites/

CSS sprites 使用 before: 伪元素

使用传统背景图像方法实现 CSS sprites 的替代方法是可用的,它解决了图像无法在高对比度模式下显示的问题。这种替代方法利用 CSS before: 伪元素(注意:也可以使用 after: 伪元素)。例子:

使用默认显示颜色与主页图标和文本链接。与带有 Windows 高对比度颜色的主页图标和文本链接。

CSS

span.test1:before {
margin-right: -10px;
content: url(icons.png);
position:relative;
left:-2px;
top:-109px;
}

span.test1 {width:17px;
height:18px;
display:inline-block;
overflow:hidden;}

HTML

<a href="#"><span class="test1"></span>Home</a>

我没有时间测试它。试一试,然后回到我们这里,如果需要,我可以“更正”这个答案。

于 2013-11-16T01:58:23.687 回答