Новая версия сайта находится по адресу
wa.artel.by
Использован материал c сайта http://www.richinstyle.com. Перевод by FireFalcon.
Как спрятать кусок таблицы стилей от определенного браузера? Во-первых, разберемся, зачем это вообще надо. К примеру, вы используете какие-то элементы, которые неправильно интерпретируются Netscape 4. В этом случае пользователи этого глючного браузера увидят совсем не то, что вы планировали. Тогда можно написать таблицу стилей простенькую, которую правильно интерпретируют все браузеры, и вставить кусок кода, который будет скрыт от Netscape 4. Делается это так:
/* Это таблица стилей */
@import url(okbrowsers.css);
Код, который понимают все браузеры, находится здесь, а все остальное запихивается в okbrowsers.css.
Эта конструкция прячет файл okbrowsers.css от Netscape 4 и MSIE 3.
Однако такое решение не всегда удовлетворительно, потому что в серьезных таблицах стилей надо учитывать особенности многих браузеров. Так что ниже перечисляются методы скрытия кода от различных браузеров.
Internet Explorer 3.0
- Можно использовать несколько включений тэгом <LINK>, MSIE 3 проигнорирует все кроме последнего, тогда как остальные браузеры обработают все.
<LINK rel="stylesheet" href="WillNotBeReadByIE3.css" type="text/css">
То есть в файле awayie3.css должен содержаться CSS-код для MSIE 3, а в файле WillNotBeReadByIE3.css все остальное
<LINK rel="stylesheet" href="awayie3.css" type="text/css">
- При наличии в названии класса или ID дефиса этот класс игнорируется IE 3;
- Если после описания стилей идет тэг <LINK>, то браузер обработает только файл, прописанный в этом тэге
<STYLE type="text/css">
/* Не распознается IE 3 */
</STYLE>
<LINK rel="stylesheet" href="awayie3.css" type="text/css"> - Если в коде встречается несколько объявления для одного и того же элемента, то IE 3 игнорирует все, кроме первого
P {color: red;
В IE 3 цвет будет красным, потому что повторное объявление игнорируется, тогда как в остальных браузерах цвет будет зеленым. Поэтому для каждого глючного свойства в IE 3 можно иметь одно объявление (первое) для IE 3, а второе для всех остальных браузеров:
font-size: 14pt}
P {color: green}
BODY {color: black}
Если бы не было первой строчки, то возникла бы проблема, так как IE 3 не поддерживает background для BODY в таблицах стилей, встроенных через тэг <LINK>. Но в этом случае тот факт, что цвет - белый не вызывает конфликтов с background, потому что IE 3 игнорирует color: white и применяет color: black взамен;
BODY {color: white;
background: black} - Можно использовать комментарий после селектора, тогда IE3 проигнорирует класс:
P/* комментарий */.class
.
Internet Explorer 4
- Если использовать строчный формат инструкции @import вместо формата url(), то IE 4 проигнорирует это включение. Например
@import "hiddenfromie4.css"
; - Можно вставить комментарий после свойства, например
color/* */ : red
; - Если указать после @import источник вывода (например
@import url(hiddenfromie4.css) screen
), то IE 4 проигнорирует включение; - Если класс нужно включить только в IE 4, надо сделать так
P/* comment */ .class {}
.
Internet Explorer 5
- Комментарий после свойства
color/* */ : red
.
Opera
- Добавить класс или ID к BODY, а потом это все вместе к селектору. Например
BODY.class P {hidden}
; - Используйте класс или ID без различения прописных и строчных букв. Например
<DIV id="body">
, #Body P для того, чтобы скрыть это от Оперы; - Можно взять свойство в кавычки. Например
color: "red"
; - Используйте открывающий тэг комментария SGML в той же линии, где нахордится селектор дял того, чтобы скрыть эту строку от Оперы:
<!-- P {color: red}
(перед селектором не должно быть переноса строки) - Пропустите # перед цветом, чтобы скрыть его от Оперы.
Netscape 4
- Используйте !important - Netscape игнорирует эту инструкцию; к примеру,
P {color: red !important} P {color: blue}
будет синим в Netscape (и в IE 3, но по другой причине) и красным в IE 4-5 и Opera; - Заключать стили в @media all {} (или @media screen);
- Если font-size задаете в пикселях, опустите px для скрытия от Netscape; например,
font-size: 12
; - Используйте обратный слэш для скрытия от Netscape -
P \{ {color: red; background: green}
; - Включайте стили через @import - Netscape не поддерживает эту инструкцию;
- Обозначьте таблицу стиле для media="all" (т.е.,
<LINK href="css.css" rel="stylesheet" type="text/css" media="all"> ;<STYLE type="text/css" media="all">
) - это скроет стили от Netscape; - Описывайте стили, используя HTML селектор - Netscape не поддерживает его;