我有这部分语法
<!DOCTYPE html>
<!--[if IE]> <html lang="en" class="ie"> <![endif]-->
<!--[if IE 8 ]> <html lang="en" class="ie8"> <![endif]-->
<!--[if IE 9 ]> <html lang="en" class="ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!-->
<html lang="en">
<!--<![endif]-->
它适用于IE 8
和IE 9
,但不适用于IE
。有什么建议吗?
浏览器css
时,我想要应用一些IE
。
示例:
.ie #nav ul#top-nav li.top-nav-item a.top-nav-link {
width: 167px;
}
修改
我有一个TypeKit
目前在IE中不起作用。我想做一些css
调整,以便我的页面在IE
上看起来很好,直到找到TypeKit
问题的解决方案
答案 0 :(得分:6)
你可能期望它触发IE10和IE11,但它不会,因为IE10中对条件评论的支持已完全删除。
http://msdn.microsoft.com/en-us/library/ie/hh801214(v=vs.85).aspx:
Internet Explorer中已删除对条件注释的支持 提高互操作性的10种标准和怪癖模式 符合HTML5。这意味着现在有条件评论 被视为常规评论,就像在其他浏览器中一样。
由于IE10 +确实是非常符合标准的浏览器,所以不应该再像这样做浏览器嗅探了。但是,如果出于某种神秘的原因,你真的真的需要修补IE特定的行为,你应该能够通过使用Javascript来解析navigator.appVersion
Trident/
的出现。当然,它并不完全可靠,就像任何一种嗅探一样。
为了更好,更可靠的浏览器特定行为,请考虑包含Modernizr来专门测试某些功能。
答案 1 :(得分:2)
<!--[if IE]> <html lang="en" class="ie"> <![endif]-->
不适用于IE 10+。 Microsoft从版本10开始从IE浏览器中删除了此功能。
<强>参考:强>
答案 2 :(得分:1)
该文档只能有一个html标记,因此IE只会被特定版本标记覆盖。
您需要将ie
类添加到特定于版本的标记。
<!--[if IE 8 ]> <html lang="en" class="ie8 ie"> <![endif]-->
<!--[if IE 9 ]> <html lang="en" class="ie9 ie"> <![endif]-->
此外,在IE10 +中删除了对条件注释的支持。
答案 3 :(得分:0)
我相信较新版本的IE(10+)不具备使用html检测浏览器版本的能力。这里有一小段javascript,它会在html标签中添加一个类,这样你就可以为IE10命名CSS。我确定了一些调整,它也适用于IE11 ......
if (navigator.userAgent.indexOf("MSIE 10") > -1) {
$("html").addClass("ie10");
}
我希望这会有所帮助:)
答案 4 :(得分:0)
<!--[if !IE]><!--><script>
if (/*@cc_on!@*/false) {
document.documentElement.className+='ie10';
}
</script><!--<![endif]-->
这用于检测IE 10浏览器