Где я могу разместить заявление IF на моей HTML-странице? - PullRequest
2 голосов
/ 14 декабря 2011

Я пытаюсь, чтобы мой веб-сайт правильно отображался на ie6 и ie7, и они говорят, что вы должны использовать это утверждение:

 <!--[if IE 6]> <link href="ie6.css" rel="stylesheet" type="text/css"> <![endif]-->

Теперь, где я могу разместить это утверждение на моей странице HTML?


РЕДАКТИРОВАТЬ:

Итак, я добавил это сразу после doctype:

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org
  /TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml">
  <!--[if lt IE 7]><html class="ie6" lang="en"><![endif]-->
  <!--[if IE 7]><html class="ie7" lang="en"><![endif]-->
  <!--[if IE 8]><html class="ie8" lang="en"><![endif]-->
  <!--[if gt IE 8]><!--><html lang="en"><!--<![endif]-->
  <head>

В моей таблице стилей ie6.css я получил это:

.ie6 #magazine_style_left {
position:relative;
float:left;
width:150px;
font-family:Georgia, "Times New Roman", Times, serif;
font-size:14px;
color:#999999;
font-style:italic;
line-height:18px;

}

.ie6 #magazine_style_right {
position:relative;
float:right;
width:519px;
border-left: 1px solid #F2F2F2;
}

и я добавил CSS на той же странице, и он все еще не работает.Это как не брать / использовать ie6 css

Ответы [ 4 ]

5 голосов
/ 14 декабря 2011

внутри головы тег

<head>
<!--[if IE 6]> <link href="ie6.css" rel="stylesheet" type="text/css"> <![endif]-->
</head>
3 голосов
/ 14 декабря 2011

Это может помочь уточнить вещи, чтобы упомянуть это:

IE условные комментарии , такие как <!--[if IE 6]><![endif]-->, могут быть в значительной степени * в любом месте документа. В <head>, в <body>, в элементе <li> или <form> и т. Д. Содержимое внутри него (которое может быть чем угодно *) будет отображаться (или нет) в соответствии с используемым правилом.

* Могут быть исключения, но я не знаю каких-либо конкретных.

Зная это, вопрос действительно сводится к тому, «где я могу поставить <link> метку», что, конечно, в <head>, как упоминалось в других ответах.

Существует другой способ нацеливания на IE, описанный здесь:

http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/

Какое-то время сообщество стандартизации сплотилось вокруг условные таблицы стилей как решение проблемы валидации.

Однако есть несколько проблем:

  • Условные таблицы стилей означают 1 или 2 дополнительных HTTP-запроса для загрузки
  • Поскольку они находятся в, рендеринг страницы ждет, пока они полностью не загрузятся.
  • Также - лучшие практики внутреннего кодирования Yahoo не рекомендуют условные таблицы стилей
  • Может разделить одно правило CSS на несколько файлов. Я потратил много времени на размышления "Откуда исходит это правило !?" когда он оказался спрятан в условной таблице стилей.

Вот мое предлагаемое решение:

<!--[if lt IE 7]>      <html class="ie6"> <![endif]-->
<!--[if IE 7]>         <html class="ie7"> <![endif]-->
<!--[if IE 8]>         <html class="ie8"> <![endif]-->
<!--[if gt IE 8]><!--> <html>         <!--<![endif]-->

Используя те же условные комментарии, мы просто условно добавляем дополнительный класс на HTML-тег. Это позволяет нам сохранить специфичные для браузера CSS в том же файле:

div.foo { color: inherit;}
.ie6 div.foo { color: #ff8000; }

Плюс он полностью проверяется и работает во всех браузерах.

Я настоятельно рекомендую эту технику для атаки на IE, определенно стоит проверить.

3 голосов
/ 14 декабря 2011

В <head> рядом с другими вашими CSS включает. Это, конечно, означает, что у вас есть ie6.css файл, который исправляет определенные проблемы IE6.

0 голосов
/ 14 декабря 2011

Вы должны поместить его в тег head, вероятно, сразу после включения других ваших css, потому что там, где определения конфликтуют, включение дальше вниз по тегу head переопределит более ранние определения.

...