如何单独为 IE9 定义特定的 CSS 规则?

新手上路,请多包涵

朋友,请帮我定义IE9的具体css规则?例如像这样

/* IE 6 fix */
* html .twit-post .delete_note a { background-position-y: 2px; }
* html .twit-post .delete_note a:hover { background-position-y: -14px; }

原文由 user632347 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 494
2 个回答

请注意,接受的答案也针对 IE10。因此,对于更完整的列表:

即 6

 * html .ie6 {property:value;}

或者

.ie6 { _property:value;}

即 7

 *+html .ie7 {property:value;}

或者

*:first-child+html .ie7 {property:value;}

IE 6 和 7

 @media screen\9 {
    .ie67 {property:value;}
}

或者

.ie67 { *property:value;}

或者

.ie67 { #property:value;}

即 6、7 和 8

 @media \0screen\,screen\9 {
    .ie678 {property:value;}
}

即 8

 html>/**/body .ie8 {property:value;}

或者

@media \0screen {
    .ie8 {property:value;}
}

仅限 IE 8 标准模式

.ie8 { property /*\**/: value\9 }

即 8,9 和 10

 @media screen\0 {
    .ie8910 {property:value;}
}

仅限 IE 9

 @media screen and (min-width:0) and (min-resolution: .001dpcm) {
 // IE9 CSS
 .ie9{property:value;}
}

IE 9 及以上

@media screen and (min-width:0) and (min-resolution: +72dpi) {
  // IE9+ CSS
  .ie9up{property:value;}
}

IE 9 和 10

 @media screen and (min-width:0) {
    .ie910{property:value;}
}

仅限 IE 10

 _:-ms-lang(x), .ie10 { property:value\9; }

IE 10 及以上

_:-ms-lang(x), .ie10up { property:value; }

或者

@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
   .ie10up{property:value;}
}

IE 11(及更高版本..)

 _:-ms-fullscreen, :root .ie11up { property:value; }


Javascript 替代品

现代化

Modernizr 在页面加载时快速运行以检测功能;然后它创建一个带有结果的 JavaScript 对象,并将类添加到 html 元素

用户代理选择

Javascript:

 var b = document.documentElement;
        b.setAttribute('data-useragent',  navigator.userAgent);
        b.setAttribute('data-platform', navigator.platform );
        b.className += ((!!('ontouchstart' in window) || !!('onmsgesturechange' in window))?' touch':'');

html 元素中添加(例如)以下内容:

 data-useragent='Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)'
data-platform='Win32'

允许非常有针对性的 CSS 选择器,例如:

 html[data-useragent*='Chrome/13.0'] .nav{
    background:url(img/radial_grad.png) center bottom no-repeat;
}


脚注

如果可能,请避免浏览器定位。识别并修复您发现的任何问题。支持 渐进增强优雅降级。考虑到这一点,这是一个“理想世界”的场景,并非总是可以在生产环境中获得,因此——上述内容应该有助于提供一些不错的选择。


归因/基本阅读

原文由 SW4 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以在 CSS 样式前加上

:root

使其特定于 IE9,如下所示:

 :root #element { color:pink \0/IE9; }  /* IE9 */

原文由 simon 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏