在IE10中使用html检测IE

时间:2014-07-14 14:49:01

标签: html css internet-explorer

我有这部分语法

<!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 8IE 9,但不适用于IE。有什么建议吗?

浏览器css时,我想要应用一些IE

示例:

.ie #nav ul#top-nav li.top-nav-item a.top-nav-link {
                width: 167px;
            }

修改 我有一个TypeKit目前在IE中不起作用。我想做一些css调整,以便我的页面在IE上看起来很好,直到找到TypeKit问题的解决方案

5 个答案:

答案 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浏览器中删除了此功能。

<强>参考:

Conditional Comments

答案 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浏览器