Условные комментарии (conditional comments)

Вы используете условные комменарии? Конечно, вы их используете. Чтобы отделить стили для ИЕ от других и при этом сохранить валидность своего CSS. Тем самым добавляя лишние http-запросы для все еще  многочисленных несчастных пользователей ИЕ. И еще в некоторой степени затрудняя себе правки стилей, если какое-либо свойство различается и для нормальных браузеров, и для ИЕ7, и для ИЕ6. Приходится править три файла, а не один. Можно забыть, запутаться, ну в общем неудобно.

Можно ли этого избежать (этого – это неудобства, лишние http-запросы и т.п.)? Да, и при этом с помощью все тех же условных комментариев! Кажется в начале года встретил на каком-то сайте (честно, не помню) подобный рецепт. Достаточно в вашем HTML с помощью условных комментариев разделить вывод в браузер BODY с различными классами. Вот как-то так:

<!--[if (!IE) | (gt IE 7)]><!-->

    <body>

<!--><![endif]-->

<!--[if IE 7]>

    <body class="ie7">

<![endif]-->

<!--[if IE 6]>

    <body class="ie6">

<![endif]-->

Пример (соответственно приведенному примеру нормальные браузеры покажут красный экран, ИЕ7 — зеленый, а ИЕ6 — синий ).

Теперь у вас есть возможность, не используя хаки и не плодя лишние файлы, править все стили в одном файле. Достаточно в  стилях перед нуждающимся в корректировке для ИЕ7 или ИЕ6 свойством  писать соответсвующий класс.

для нормальных браузеров:

.selector {attr: value }

для ИЕ7:

.ie7 .selector {attr: new value} - это свойство увидит только ИЕ7

ну и соотвественно для ИЕ6:

.ie6 .selector {attr: new value} - а это  только ИЕ6

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

P.S. Единственно, что если вам приходится использовать фильтры или expression для ИЕ, то валидность CSS сохранить не удастся. Но, по-моему, важнее валидность HTML, чем CSS. Потому как валидность CSS никак не влияет на доступность сайта, а только лишь на его отображение.

Xотите быстро продать (подержанный|б у) или новый авто? И не хотите тратить впустую время, блуждая по сотням авто базаров. Тогда наш сервис специально для Вас! Наш авторынок предлагает Вам купить или продать (подержанный|б у|) авто практически любых марок и моделей, во всех городах. Наши б у автомобили ждут своих новых владельцев, которые хотят продать автомобиль выгодно, и в кратчайшие сроки. Если вы решили купить машину, но новый авто вам дорого, наш авто базар предлагает подержанные автомобили по вполне дешевым ценам. Предлагаем Вам б у авто (подержанные автомобили), что совершенно не означает значит, что у нас вы сможете купить плохое авто. Б у автомобили имеет низкую цену. Авторынок – уникальный поисковик подержанных автомобиль. Вы хотите купить или продать (подержанный|б у|) автомобиль на вторичном рынке? Теперь Вам нет необходимости заходить на каждый авто рынок, не нужно ехать на автобазар. Просто посещайте наш автобазар. Теперь купля подержанного автомобиля стала проще – добавляйте выбранные авто в Портфель по желанию. Оцените возможность искать одновременно несколько марок или моделей авто, выбирать несколько регионов, в которых продается машина. Решили продать (подержанный|б у) или новый автомобиль? Желаете чтобы объявление было на нашем автобазаре ? Ускорьте продажу авто, сделав его VIP с помощью СМС.

Метки: , , , ,

2 комментариев на “Условные комментарии (conditional comments)”

  1. [...] присутствовать обе записи. Если же вы предпочитаете условные комментарии, то вторая запись должна быть вынесена в стили для ИЕ. [...]

  2. Антон:

    Слишком громозко, и в html, и в css.