从IE6隐藏一些HTML?

时间:2009-07-30 04:52:08

标签: html internet-explorer internet-explorer-6

我试过了:

<!--[if lt IE 6.0]>
HTML TO HIDE FROM IE6
<![endif]-->        

但不幸的是,这些内容也会被firefox隐藏起来。有人有方法吗?我希望这些东西只能从IE6中隐藏

由于

6 个答案:

答案 0 :(得分:19)

您实际上可以使用条件注释来隐藏来自Internet Explorer的内容,这与deceze的答案相反。这些类型的条件注释称为“Downlevel Reveal Conditional Comments”。 (这些与用于向Internet Explorer显示内容的注释不同,这些注释更为常见,被称为“下层隐藏条件注释”)


<!--[if lte IE 6]><![if gte IE 7]><![endif]-->
<!-- This is a bit mad, but code inside here is served to everything 
    except browsers less than IE7, so all browsers will see this -->
<!--[if lte IE 6]><![endif]><![endif]-->

但是,如果您已经使用下层隐藏的条件注释来向IE6显示IE6样式表,那么您可能最好只使用CSS隐藏它。

我希望这会有所帮助。

答案 1 :(得分:0)

与您的问题有点混淆,但这是用于检测Internet Explorer版本的JavaScript代码。取自Detecting Internet Explorer More Effectively。将要隐藏的HTML内容从IE6中添加到div中,并使用下面的函数将其隐藏。

function getInternetExplorerVersion()
// Returns the version of Internet Explorer or a -1
// (indicating the use of another browser).
{
  var rv = -1; // Return value assumes failure.
  if (navigator.appName == 'Microsoft Internet Explorer')
  {
    var ua = navigator.userAgent;
    var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    if (re.exec(ua) != null)
      rv = parseFloat( RegExp.$1 );
  }
  return rv;
}
function checkVersion()
{
  var msg = "You're not using Internet Explorer.";
  var ver = getInternetExplorerVersion();

  if ( ver > -1 )
  {
    if ( ver == 6.0 ) 

            **Hide the DIV here**

  }
  alert( msg );
}

答案 2 :(得分:0)

尝试

<!--[if lte IE 6.0]>

在您的CSS中,使用lte(小于或等于)而不是lt(小于)。

答案 3 :(得分:0)

条件注释根本不应影响Firefox,因为它们已被注释掉,浏览器应忽略它。我会检查你的Firefox样式表是否正确并正确嵌入如下:

<link href="/css/main.css" rel="stylesheet" type="text/css" />
<!--[if lt IE 7]>
<link href="/css/ie6.css" rel="stylesheet" type="text/css" media="screen"/>
<![endif]-->

答案 4 :(得分:0)

修改

阅读Natalie Downe's answer后,我会这样做:

<!--[if true]><![if !IE]><![endif]-->
<h1>You're not using IE. Well done!</h1>
<!--[if true]><![endif]><![endif]-->

您可以使用否定条件评论来隐藏IE中的内容,但不能隐藏其他浏览器中的内容。

<!DOCTYPE html>

<html>
<head>
<title></title>
<style type="text/css"></style>
<script type="text/javascript"></script>
</head>
<body>

<![if !IE]>
<h1>You're not using IE. Well done!</h1>
<![endif]>

</body>
</html>

它会呈现一些无效的标记,但它可以正常工作。

参考:http://msdn.microsoft.com/en-us/library/ms537512%28VS.85%29.aspx

答案 5 :(得分:0)

Natalie Downe的答案已经足够好了,但是有一个更短更清晰的版本可以隐藏IE6中的内容(或者10以下的任何版本):

<!--[if !IE 6]><!-->IE6 can't see me<!--<![endif]-->

要定位IE6 及以下,您可以使用

<!--[if gt IE 6]><!-->IE6 and lower can't see me<!--<![endif]-->

如果您只想支持IE10 +,可以使用

<!--[if !IE]><!-->IE9 and lower can't see me<!--<![endif]-->

事实上,IE10 +不支持条件评论。灵感来自Browserhacks

当然,每个其他浏览器都可以看到内容,因为它都是有效的HTML。