Содержание

Что такое условные комментарии – Zencoder

Короткая статья, посвященная условным комментариям. Такие комментарии до сих пор активно применяются на практике и имеют отношение исключительно к браузерам семейства Internet Explorer (IE).

Точнее — условные комментарии и являются изобретением фирмы ООО “Микрософт”, призванным помочь браузерам этой конторы более-менее адекватно обрабатывать веб-сайты. Откуда такое странное название — условный комментарий? Его можно расшифровать как слияние двух слов:

  • условие;
  • комментарий;

Условие — это как обычное условие if в любом языке программирования (в том же JavaScript, к примеру). А комментарий — это как обычный комментарий в HTML-документе:

<!-- Это комментарий в HTML -->

Синтаксис условного комментария

Сочетание условия и комментария в итоге получило название условного комментария. Синтаксис можно представить примером ниже:

<!--[if lte IE 8]>
  ...
<![endif]-->

Новичок, если увидит впервые такой синтаксис, может удивиться и устрашиться его сложного написания (таким новичком был я когда-то, пока не привык). Тем более, его сложно запомнить для написания вручную, проще просто копировать. Но на самом деле в условных комментариях все предельно просто.

Начинается () условный комментарий со строки:

<!--[if lte IE 8]>
  <p>... после которой идет HTML-код. Заканчивается (<strong>endif</strong>) условный комментарий строкой:</p>
<![endif]-->

Реальный рабочий пример условного комментария можно привести ниже. Например, таким образом:

<!--[if lte IE 8]>
  <link rel="stylesheets" type="text/css" href="css/ie.css" media="screen, projection">
<![endif]-->

Расшифровать подобный условный комментарий можно таким образом: “если браузером посетителя является Internet Explorer версии 8 или ниже, то следует загрузить таблицу стилей

1
ie. css
, расположенную по адресу
1
css/
”.

Цель создания условных комментариев

Условные комментарии понимают только браузеры семейства IE. Для других браузеров (таких как Chrome, Firefox или Opera) такие строки являются обычным HTML-комментарием, который они просто опускают (проходят мимо него).

В этом и заключается цель создания условных комментариев — сделать так, чтобы браузеры IE смогли загружать таблицы стилей, предназначенные только для них; в то время как остальные браузеры не загружали бы эти таблицы.

Зачем понадобилась такая особенность именно для браузеров IE, много говорить не надо. Все хорошо знают, что IE версии 6-9 отображают HTML-страницы не всегда в соответствии с веб-стандартами.

Поэтому был придуман обходной маневр, призванный не нагружать “правильные” браузеры Chrome, Firefox или Opera лишним кодом, предназначенным только для браузера IE.

Ключевые слова в условных комментариях

Условие в условном комментарии создается с помощью

специальных слов, запомнить значение которых очень легко, так как их всего четыре:

  • — меньше ()
  • — меньше или равно ()
  • — больше ()
  • — больше или равно ()

То есть, запись вида:

<!--[if lte IE 7]>
  ...
<![endif]-->

… читается как: “если браузер IE версии 7 или ниже (версия 6 или 5), то применить код внутри комментария”.

Или же:

<!--[if lt IE 9]>
  ...
<![endif]-->

… “если версия браузера IE меньше 9, то применить код внутри комментария.

С записями — IE 6, IE 7, IE 8, IE 9 — думаю, все должно быть понятно без объяснений: Internet Explorer 6 (IE 6), Internet Explorer 7 (IE 7), Internet Explorer 8 (IE 8), Internet Explorer 9 (IE 9).

Заключение

Более подробно и обстоятельно об условных комментариях можно почитать из первоисточника (очень логично и правильно так сделать) — About conditional comments. Правда, оригинал написан на языке Шекспира, но кто не владеет им, может разобраться и так.

Стоит также заметить, что на оф. сайте Microsoft говориться о том, что в браузере IE начиная с версии 10 прекращается поддержка условных комментариев — Условные комментарии более не поддерживаются. То есть, браузер IE10 не сможет понять условный комментарий в HTML-документе и пропустит его, посчитав обычным комментарием.

Насколько я могу лично судить о таком шаге, вызван он тем, что в компании Microsoft уверены в том, что браузер версии 10 сможет правильно работать в соответствии с W3C-стандартами и “костыль” в виде условного комментария ему больше не требуется.

На этом все.


conditional comments

Условные комментарии или как бороться с Internet Explorer

Вы здесь

Главная → Блог → CSS → Условные комментарии в Internet Explorer

Дата:27. 12.15 в 13:34

Раздел: 

В этой статье раскрывается понятие условного комментария, а также приводится их классификация с примерами использования.

Всем верстальщикам без исключения знакома та ситуация, когда написанный ими код прекрасно выводится во всех браузерах, кроме всеми «любимого» Internet Explorer. В таком случае нужно вставить вспомогательный код или скрипт, который принудит нашего старичка работать так, как и все прочие нормальные браузеры. Именно для этого было разработан такой прием, как условный комментарий.

Условный комментарий – особый код, назначение которого задать параметры только для IE. Прочие браузеры игнорируют такую запись, принимая ее за обычный комментарий.

Синтаксис

Стандартный пример правильной записи условного комментария:

HTML

<!--[if условие]> Код для IE <![endif]-->

Такая запись должна использоваться в тех браузерах, которые могут распознать запись условного комментария. При проверке на валидацию будет получен положительный результат.

Допускается также использование такого формата:

HTML

<![if expression]> Код для IE <![endif]>

Данный формат предназначен для работы в тех браузерах, которые не могут распознать запись условного комментария. Также такая запись не пройдет проверку на валидацию. Однако этот нежелательный эффект устраняется через javascript. Для этого нужно знать версию программы и определенный код.

Условия и примеры

В таблице приведен список операторов для записи комментариев с примерами и пояснениями:

ОператорКак использоватьПояснения
IE[if IE]Сейчас поддерживается только такая запись, которая расшифровывается как Internet Explorer
value[if IE 7]Отвечает за указания версии программы, считывается, если совпадает с существующими версиями
![if !IE]Передает значение логического отрицания. Это значит, что будет установлено противоположное значение аргумента
lt[if lt IE 5.5]less-than меньше чем. Отрабатывает, когда первый аргумент меньше второго
lte[if lte IE 6]less-than or equal меньше или равно. Реагирует на ту ситуацию, когда второе значение больше первого или равно ему
gt[if gt IE 5]greater-than больше чем. Отрабатывает, когда первый аргумент больше второго
gte[if gte IE 7]greater-than or equal больше или равно. Реагирует на ту ситуацию, когда второй аргумент меньше или равен первому
( )[if !(IE 7)]Объединяет определенные части кода в одно целое
&[if (gt IE 5)&(lt IE 7)]Означает логическую команду И. Приводит код в действие, когда оба условия истинны
|[if (IE 6)|(IE 7)]Означает логическую команду ИЛИ.
Приводит код в действие, когда одно из указанных условий истинно
true[if true]Только правдивые значения
false[if false]Всегда противоречащие значения

Теперь следует рассмотреть, как выглядит полноценное лечения несуразных свойств Internet Explorer:

HTML

<!--[if IE 6]>
<p>Будет показываться только в среде IE6.</p>
<![endif]-->
 
 
<![if !IE]>Для всех браузеров, за исключением IE<![endif]>

Также для того, чтобы условные комментарии отыграли свою главнейшую роль исключили из кода хаки, необходимо подключить соответствующие таблицы стилей для каждой необходимой версии браузера:

HTML

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

Отметим пару положительных сторон применения условных комментариев:

  • можно составить прогноз поведения кода в более новых версиях браузера;
  • проходимость проверки на валидность.

Отрицательные стороны:

  • сложность внесения поправок в код, так как нужно будет исправлять основную таблицу стилей и таблицу для IE.
  • продлевается время загрузки страницы в IE, так как требуется загрузка вспомогательных файлов.

Оценок: 3 (средняя 5 из 5)

Оценка: 

Ключевые слова: 

CSS приемы

Понравилась статья? Расскажите о ней друзьям:

Еще интересное

Условные комментарии — no-regime.com

Из Википедии, бесплатной энциклопедии

Условные комментарии (сокращенно: CC ; по-английски: условные комментарии ) — это управляющие структуры в документах HTML, которые могут интерпретироваться только Microsoft Internet Explorer и программами из серии Microsoft Office (например, Microsoft Word ). Они предлагают возможность выполнения различного HTML в зависимости от версии программы средства визуализации HTML . Начиная с Internet Explorer 10, эта форма переключения браузера больше не поддерживается для совместимых со стандартами HTML-страниц .

Содержание

  • 1 синтаксис HTML
    • 1.1 Значения (выбор)
    • 1.2 операторы
    • 1.3 Реверс
  • 2 Значение для Outlook 2007
  • 3 JavaScript иcript
  • 4 См. Также
  • 5 веб-ссылок
  • 6 индивидуальных доказательств

Синтаксис HTML

Они используются так же, как и настоящие HTML-комментарии ( ): <!-- Kommentar -->

<!--[if 'Bedingung']>инструкции<![endif]-->

Internet Explorer проверяет сформулированное условие и интерпретирует содержимое, если условие применяется. Предопределенные операторы сравнения и значения позволяют обращаться к разным версиям браузера. Другие пользовательские агенты интерпретируют эту структуру как синтаксически правильный комментарий и игнорируют содержимое.

При использовании стандартного режима Internet Explorer 10 и выше не предлагает возможности использования условных комментариев. В этом случае конструкция рассматривается только как комментарий.

Ценности (выбор)

значениефункцияпример
! IEесли нет Internet Explorer <!--[if !IE]>
IEесли Internet Explorer <!--[if IE]>
IE 5.5если Internet Explorer версии 5.5 <!--[if IE 5.5]>
IE 8если Internet Explorer версии 8 <!--[if IE 8]>
msoкогда Microsoft Office <!--[if mso]>
mso 15если Microsoft Office 2013 <!--[if mso 15]>
vmlесли поддерживается VML <!--[if vml]>

При необходимости условия также могут быть заключены в скобки.

Операторы

операторфункцияпример
!Неоператор <!--[if!(IE 6)]> (если не IE 6)
ltОператор меньше чем <!--[if lt IE 6]> (если меньше IE 6)
lteОператор меньше или равно <!--[if lte IE 6]> (если меньше или равно IE 6)
gtБольше, чем оператор <!--[if gt IE 6]> (если выше IE 6)
gteОператор больше или равно <!--[if gte IE 6]> (если больше или равно IE 6)
&И оператор <!--[if mso &!vml]> (если программа Office без поддержки VML)
|Или оператор <!--[if mso | ie]> (если программа Office или IE)

разворот

Обычно условные комментарии скрывают инструкции от пользовательских агентов, которые их не понимают. Microsoft говорит о «скрытых на нижнем уровне», что означает «комментарии, скрытые от старых браузеров». Однако этот эффект также может быть обращен вспять (так называемые комментарии «с нижнего уровня»):

<![if lt IE 7]>Инструкции для IE до версии 7 и других браузеров<![endif]>

Это уже не HTML-комментарий, а синтаксически неверная и, следовательно, недопустимая разметка. Рассматриваемое состояние оценивается только Internet Explorer. Другие браузеры интерпретируют строки <![if lt IE 7]>и <![endif]>как недопустимые теги и отображают только содержимое между ними. Синтаксически правильный и действительный согласно W3C следующий синтаксис:

<!--[if lt IE 7]>-->Инструкции для IE до версии 7<!--<![endif]-->

Следующий вариант подходит для выполнения кода в Internet Explorer <10 и интеграции альтернативного кода для других браузеров. Поскольку альтернативные браузеры не могут ничего делать с условными комментариями, код альтернативного браузера не должен находиться внутри комментария, а должен находиться между двумя комментариями:

 <!--[IF IE]>Dieser Inhalt wird vom Internet Explorer älter als Version 10 ausgeführt<![ENDIF]-->
 <!--[IF !IE]>--> -->Dieser Inhalt wird von allen anderen Browsern ausgeführt<!-- <![ENDIF]-->

Значение для Outlook 2007

Отображение сообщений электронной почты в формате HTML в Outlook 2007 больше не выполняется компонентом Internet Explorer, а выполняется Microsoft Word. Кроме того, различные функции HTML (такие как формы или сценарии) недоступны в Outlook 2007 по соображениям безопасности. Внешний вид электронной почты в формате HTML можно настроить с помощью условных комментариев для Outlook, например Б. предложить альтернативу форме ввода для информационных бюллетеней.

<!--[if gte mso 12]>Инструкции для Office 2007 и выше<![endif]-->

JavaScript иcript

Аналогичный механизм для JavaScript существует со времен Internet Explorer 4 cript 3. 0) . Интерпретатор используемый в IE, оценивает следующий синтаксис, который другие интерпретаторы распознают только как комментарий. Microsoft называет это поведение «условной компиляцией».

 <script type="text/javascript">
 /*@cc_on @*/
 /*@if (@cript_version >= 5.5)
 dieser Bereich ist fürcript-Interpreter >= v5.5 sichtbar
 @else @*/
  dieser Bereich wird alternativ dazu ausgeführt
 /*@end @*/
 </script>

Этот синтаксис также был включен в языковую область в аналогичной форме .

Смотри тоже

  • Переключатель браузера

веб ссылки

  • Переключатель браузера для Internet Explorer с условными комментариями
  • Об условных комментариях в MSDN (английский)
  • Йенс Мейерт: критика условных комментариев (английский)

Индивидуальные доказательства

  1. ↑ Разбор HTML5 в IE10
  2. Outlook 2007 использует только Word в качестве редактора электронной почты . MSDN по состоянию на 3 апреля 2007 г.
  3. Word 2007 Возможности рендеринга HTML и CSS в Outlook 2007 (1/2) (2/2) . MSDN по состоянию на август 2006 г.
  4. Условная компиляция на microsoft.com/technet
  5. ↑ @ cc_on инструкция в MSDN
<img src=»//de.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1×1″ alt=»»>

CSS — условные комментарии

CSS — условные комментарии

Если в одной системе установлено несколько IE, условные комментарии будут отображаться для каждой установки. как самая высокая установленная версия.

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

Условные комментарии работают только в IE и поэтому отлично подходят для предоставления специальных инструкций, предназначенных только для IE. Они поддерживаются от IE 5 до IE9.(включительно).

В старых версиях IE часто требуется дополнительный CSS для правильного отображения страниц. Условные комментарии — лучший способ добавить этот CSS, поскольку система специально разработана для этого варианта использования.

Если вам нужны специальные стили для IE10 и выше, вам придется найти другой метод, так как условные комментарии были отключены в IE10. Однако в этих версиях гораздо меньше ошибок, чем в более ранних.

Условные комментарии работают следующим образом:


 
  1. Их основная структура такая же, как у HTML-комментария ( ). Поэтому все остальные браузеры увидят их как обычные комментарии и полностью проигнорируют.
  2. IE, тем не менее, был запрограммирован на распознавание специального По условному комментарию это не IE 5-9

    Обратите внимание на специальный синтаксис:

    • gt : больше
    • lte : меньше или равно

    Обратите внимание на последнее. У него другой синтаксис, и его содержимое отображаются во всех браузерах, кроме IE:

    
     

    взломать CSS?

    Являются ли условные комментарии CSS-хаками? Строго говоря, да, поскольку они может служить для предоставления специальных инструкций по стилю для некоторых браузеров. Однако они не зависят от одного браузера. ошибка, чтобы решить другую, как это делают все настоящие хаки CSS. Кроме того, их можно использовать не только для CSS-хаков. только (хотя такое случается редко).

    Поскольку условные комментарии основаны не на взломе браузера, а на преднамеренной функции, я считаю, что они безопасны в использовании. Конечно, другие браузеры тоже могут реализовывать условные комментарии (хотя пока ни один из них не сделали это), но вряд ли они отреагируют на конкретный запрос

    Условный оператор заключен в квадратные скобки и начинается с if, за которым следует выражение. Вложенный HTML-контент ограничивается открывающим оператором.

    В приведенном выше примере заключенный HTML-контент — тег — будет открыт для всех браузеров IE, поддерживающих условные комментарии. Он ссылается на таблицу стилей, которую увидит только IE. Все браузеры, кроме IE версии 5 и более поздних версий, увидят приведенный выше код как один простой HTML-комментарий. Если мы удалим скобки и текст для ясности, у нас в основном останется нормальная структура комментариев:0003

      

    Операторы условных комментариев

    Как мы уже упоминали, мы можем использовать условные комментарии для применения правил CSS к конкретным версиям браузера IE с помощью операторов сравнения, которые позволяют точно указать каждую версию IE. Мы можем писать сложные выражения, используя один или несколько операторов, перечисленных в Таблице 1.

    Таблица 1. Операторы условного комментария

    Итак, например, вы должны использовать следующую разметку для целевой версии IE 7:

      

    В качестве альтернативы, если вы хотите настроить таргетинг на все браузеры IE, кроме IE7 и выше (то есть версии до IE7), вы можете использовать этот метод:

      

    Если вы хотите включить IE7 в этот список, вы должны использовать оператор lte, который выбирает все номера версий, которые меньше или равны 7.

    Операторы gt (больше) и gte (больше или равно) работают одинаково. Взгляните на этот пример:

      

    Этот условный комментарий выберет все браузеры IE с номером версии больше или равным 6, что, очевидно, будет включать IE7 и даже IE8 — если он когда-либо появится!

    Следует отметить, что когда вы используете одну цифру для представления версии IE, на которую хотите настроить таргетинг (например, [если IE 7]), эта директива будет применяться ко всем версиям этого браузера, включая версии с векторами версий. Например, если вы использовали приведенный ниже условный комментарий, вы бы включили все версии IE5, включая IE5.5:

      

    Вы также можете использовать оператор «не», !, чтобы исключить одну из версий браузера IE. Чтобы исключить IE6, но не IE7 или IE5 (если вы когда-нибудь захотите это сделать), вы должны использовать это выражение:

      

    Условные комментарии, скрытые на более низком уровне

    Более сложные выражения могут быть созданы с использованием одного или нескольких доступных операторов. Например, следующий условный комментарий предназначен для IE6 и IE7 с использованием подвыражений и оператора ИЛИ:

      

    Microsoft называет этот стиль условных комментариев downlevel-hidden , поскольку браузеры, не поддерживающие условные комментарии (включая IE4 и более ранние версии), будут интерпретировать код условного комментария как стандартный. комментарий HTML и полностью игнорировать его. И да — Microsoft описывает все браузеры, кроме IE5 и более поздних версий, как браузеры нижнего уровня!

    Однако существует другая версия условных комментариев, позволяющая ориентироваться на эти браузеры нижнего уровня; их зовут downlevel-выявлено условных комментариев.

    Условные комментарии, раскрываемые на более низком уровне

    В условных комментариях, раскрываемых на более низком уровне, содержимое HTML внутри условных операторов открывается браузерам, которые не поддерживают условные комментарии, поскольку условные операторы — и только условные операторы — игнорируются. Если утверждение оценивается как истинное (в поддерживающем браузере), содержимое условных операторов также раскрывается.

    К сожалению, синтаксис этих условных комментариев, раскрываемых на более низком уровне, часто вызывает ошибки проверки HTML. Вот рекомендуемый Microsoft синтаксис:

     
     

    Это отображается в браузерах более ранних версий, но это недопустимый HTML!

    Однако доступна лучшая, допустимая версия синтаксиса. Было обнаружено, что если вы немного измените синтаксис, эффект понижения уровня может сохраниться, и код HTML будет проверяться:

     
      

    Это отображается в браузерах более ранних версий.

    Здесь мы просто заключаем условные операторы в комментарии HTML. Следует отметить, что такое использование не соответствует спецификациям Microsoft для этих комментариев, но в настоящее время оно работает во всех версиях IE5 и более поздних (включая IE7) и, что более важно, также будет подтверждено — в отличие от версии Microsoft.

    Тем не менее, существует проблема с этим подходом, если вы хотите ориентироваться на браузеры нижнего уровня, а также на поддерживаемую версию браузера Microsoft. Взгляните на этот пример, который пытается настроить таргетинг на браузеры нижнего уровня и IE7 или более позднюю версию:

     
      

    Это отображается в браузерах более ранних версий и в IE7 или более поздних версиях.

    В этом примере используется действительный HTML, но браузеры IE7 и более поздних версий также отображают --> после открывающего условного оператора. Исправление, предложенное Microsoft, заключается в добавлении дополнительного < ! сразу после открывающего условного комментария:

     
      

    Это отображается в браузерах более ранних версий и в IE7 или более поздних версиях.

    Условные комментарии на практике

    Если вы хотите использовать условные комментарии в своем подходе к предоставлению целевого CSS, вот что вы можете сделать. Сначала свяжите стандартную таблицу стилей обычным способом (например, с помощью тега). Затем используйте условные комментарии, чтобы сослаться на одну или несколько других таблиц стилей, содержащих CSS, предназначенные для IE. Таблицы стилей только для IE должны содержать только необходимые исправления CSS. Они не должны быть дубликатом вашей стандартной таблицы стилей — это было бы пустой тратой трафика и в любом случае было бы полностью избыточным. Вот пример такого подхода:

     <ссылка href="main.css" rel="stylesheet" type="text/css">
    
    
     

    main.css — это стандартная таблица стилей, а ie7.css, ie6.css и ie5.css содержат CSS для определенных версий IE. Возможно, вам не нужно быть настолько привязанным к версии, как в этом примере. Помните, что будет действовать каскад, и что правила в файлах CSS, на которые есть ссылки ниже в исходном коде страницы, будут иметь приоритет над любыми ранее определенными правилами CSS.

    Нравятся вам условные комментарии или нет, но они позволяют легко и безопасно работать с целевыми версиями IE, и они настолько перспективны, насколько любой из этих трюков может быть. Комментарии также обеспечивают логическую структуру вашего подхода к управлению CSS и отделяют целевой CSS от стандартного CSS. Когда-нибудь в будущем, когда целевой CSS больше не потребуется, уже разделенный код можно будет легко удалить.

    Плохо · Йенс Оливер Мейерт

    Почему «условные комментарии» плохи, повторите: Плохо

    Сообщение от 1 февраля 2007 г. (↻ 31 мая 2022 г.), зарегистрированное в разделе «Веб-разработка».

    Этот и многие другие посты также доступны в виде красивой электронной книги: О веб-разработке .

    Этот пост не так ясен, как мог бы быть (и тон странный). Пожалуйста, обратитесь к более свежим сообщениям об условных комментариях, в первую очередь To Be Clear (об условных комментариях и сбросах) .

    «Условные комментарии» (CC) использовать не рекомендуется. Они противоречат цели отделения структуры от представления, и из-за этого однажды они причинят вам вред.

    Но обо всем по порядку. Для тех удачливых разработчиков, которые не знают, что такое условные комментарии, ознакомьтесь со «спецификацией» Microsoft или обратитесь к следующему фрагменту кода. Это фрагмент HTML, показывающий комментарий, содержащий ссылку на определенную таблицу стилей IE.

      

    Редко бывает, что единственная таблица стилей включена в документ; обычно пользователи CC включают свои «обычные» таблицы стилей, а затем одну, если не больше, таблиц стилей для удовлетворения потребностей Internet Explorer.

    Что не так с условными комментариями?

    Две вещи.

    1. Хотя условные комментарии синтаксически допустимы, они не соответствуют стандартам : «Информация, которая появляется между комментариями, не имеет особого значения», а комментарии «будут игнорироваться синтаксическим анализатором».

      (Интересно, что именно в этом правы все остальные реализации, кроме Internet Explorer от Microsoft: они просто игнорируют комментарии .)

      Процесс стандартизации был в лучшем случае слабым . Это естественно для проприетарных решений, и условные комментарии не являются исключением. Пока вы думаете, что вам помогают, в какой-то момент они вас съедят, так как…

    2. Условные комментарии гарантируют, что ваш HTML будет изменен , потому что они смешивают подлежащую разделению структуру и представление.

      Независимо от того, как вы используете CC, потребуется настроить HTML для каждого документа или шаблона , если вы сосредоточитесь на других версиях Internet Explorer. Это происходит, даже если вы самый дальновидный мастер веб-разработки, и в остальном нет необходимости обновлять структуру ваших документов. Помните, что вы стремитесь к последовательному разделению структуры и форматирования.

      Обычно ваш следующий редизайн потребует от вас обновления ваших таблиц стилей — еще лучше, вашей таблицы стилей, единственного числа — но теперь вы участвуете в лотерее и вам нужно будет не только поддерживать дополнительные таблицы стилей, нет, вы, вероятно, также вынужден обновить все эти запросы комментариев IE.

      Проще, а также более «практично» — если это то, что нужно — использовать самые озорные (но действенные) CSS-хаки, фильтры и обходные пути. По крайней мере, они живут в таблицах стилей, по крайней мере, они заставляют вас работать только тогда, когда дело доходит до один тип файла .

    Советы

    Установите барьеры и табу для своей работы, включая «без условных комментариев». Сообщите это. Объясните, почему они не помогают. Я знаю компании, в которых желательны результаты работы (и они уже обещаны клиентам), которых вы не можете достичь иначе, но решите эту проблему в корне, спросите членов вашей команды, полезны ли эти результаты, и вместо этого полагайтесь на изящную деградацию.

    ❧ Извиняюсь за несколько сумбурный партизанский пост, но я хотел подчеркнуть это.

    Обновление (2 февраля 2007 г.)

    Для уточнения: когда я говорю об использовании «самых непослушных хаков CSS», я рекомендую их вместо условных комментариев (мой пост с фильтром экранирования символов IE включает несколько заметок об использовании хаков ). Используйте их редко, используйте их с умом, но не забывайте, что это совсем другая история — «взломы» CSS обычно зависят от ошибок синтаксического анализа, синтаксических ошибок или отсутствия поддержки определенных компонентов спецификации, в то время как условные комментарии были намеренно созданы для того, чтобы нарушают спецификацию HTML .

    Как правило, существует только один случай, где условные комментарии могут не стать проблемой: Когда вы работаете на шоу одного человека и отвечаете за поддержку HTML и CSS. В других случаях вы не только заставите себя, но, что еще хуже, членов команды обновить HTML-шаблоны и таблицы стилей и даже работать на уровне файлов (удалить ie5.css, переименовать ie.css, создать ie8b.css). Быстрый «поиск и замена» не сработает, когда потребуются изменения CC.

    Не поддавайтесь соблазну. Условные комментарии кажутся безопасными, они выглядят действительными, но это иллюзия, и они плохие.

    Твитнуть этот пост?

    Обо мне

    Меня зовут Йенс, я ведущий разработчик — в настоящее время менеджер по опыту разработчиков в LivePerson — и автор. Я работал техническим руководителем в Google, я близок к W3C и WHATWG, а также пишу и рецензирую книги для O’Reilly. Я люблю пробовать разные вещи, иногда включая философию, искусство и приключения.