Скрывает какой-то HTML от IE6? - PullRequest
9 голосов
/ 30 июля 2009

Я пробовал:

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

но, к сожалению, материал тоже скрывается от firefox. У кого-нибудь есть методы, которые работают? Я хочу, чтобы материал был скрыт только от IE6

Спасибо

Ответы [ 6 ]

19 голосов
/ 30 июля 2009

Вы можете использовать условные комментарии, чтобы скрыть вещи от Internet Explorer вопреки ответу от deceze. Эти типы условных комментариев называются ' Условные комментарии раскрытия нижнего уровня '. (Они отличаются от комментариев, используемых для показа вещей в 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.

Надеюсь, это поможет.

0 голосов
/ 10 июля 2014

Ответ Натали Даун достаточно хорош, но есть более короткая и понятная версия, чтобы скрыть контент от 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.

0 голосов
/ 30 июля 2009

Редактировать

Прочитав ответ Натали Даун , я бы сделал это так:

<!--[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

0 голосов
/ 30 июля 2009

Условные комментарии не должны влиять на 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]-->
0 голосов
/ 30 июля 2009

Попробуйте

<!--[if lte IE 6.0]>

в вашем CSS, используя lte (меньше или равно), а не lt (меньше чем).

0 голосов
/ 30 июля 2009

Немного запутался с вашим вопросом, но вот код javascript для определения версии Internet Explorer. Взято из Более эффективное обнаружение Internet Explorer . Добавьте содержимое 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 );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...