2011-12-14 4 views
2

Я пытаюсь получить свой веб-сайт, показывая должным образом на IE6 и IE7, и они говорят, что вы должны положить использовать этот оператор:Где я могу разместить оператор IF на моей странице HTML?

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

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


EDIT:

Так я добавил это только после 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

ответ

3

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

+0

Привет, хорошо, я подумал, что это должно пойти (под другими файлами href css link). Да, у меня есть файл ie6.css с css, но он, похоже, не работает (следовательно, почему мне было интересно, поставил ли я инструкцию не в том месте) – Reflex84

5

внутри головки тега

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

Я чувствую, что это не сработает, потому что его greyed out ? – Reflex84

+0

Нет, это правильный формат. Попробуйте, и вы увидите – marissajmc

3

Это могло бы помочь прояснить вещи говорить об этом:

conditional comments 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, определенно стоит проверить.

+0

Привет - очень информативный! Спасибо! Итак, мне нужно отнять или половину заполнения в этом правиле css правильно функционировать в ie6: #magazine_style_left { позиция: относительная; float: слева; ширина: 150шт; padding-right: 20px; font-family: Грузия, «Times New Roman», Times, serif; Размер шрифта: 14 пикселей; цвет: # 999999; font-style: italic; line-height: 18px; } Так вы говорите, я должен добавить это в моем заголовке: - <<[если IE 6]!> html class = "ie6"> и добавить .ie6 в журнал_style_left, чтобы он выглядел так: .ie6 #magazine_style_left {...}? – Reflex84

+0

Правильно, используя эту технику, вы можете использовать '.ie6 # magazine_style_left', чтобы выбрать элемент только в IE6, из вашей обычной таблицы стилей. В этом случае условные комментарии IE будут использоваться только для добавления класса 'ieX' в элемент' html' и откроют тег. Он идет после вашего doctype, перед тегом '' (место всегда тег ''. –

+0

Кстати, мне жаль, что вам приходится иметь дело с IE6, я плачу только потому, что мне нужно поддерживать IE8! –

0

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