Web-анатомия Web-анатомия Web-анатомия
Web-анатомия Web-анатомия Web-анатомия HTML CSS JScript DHTML
заголовок - CSS
баги NN 4.x


Новая версия сайта находится по адресу


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
  1. Можно использовать несколько включений тэгом <LINK>, MSIE 3 проигнорирует все кроме последнего, тогда как остальные браузеры обработают все.

    <LINK rel="stylesheet" href="WillNotBeReadByIE3.css" type="text/css">
    <LINK rel="stylesheet" href="awayie3.css" type="text/css">

    То есть в файле awayie3.css должен содержаться CSS-код для MSIE 3, а в файле WillNotBeReadByIE3.css все остальное
  2. При наличии в названии класса или ID дефиса этот класс игнорируется IE 3;
  3. Если после описания стилей идет тэг <LINK>, то браузер обработает только файл, прописанный в этом тэге

    <STYLE type="text/css">
    /* Не распознается IE 3 */
    </STYLE>
    <LINK rel="stylesheet" href="awayie3.css" type="text/css">


  4. Если в коде встречается несколько объявления для одного и того же элемента, то IE 3 игнорирует все, кроме первого

    P {color: red;
    font-size: 14pt}
    P {color: green}

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

    BODY {color: black}
    BODY {color: white;
    background: black}

    Если бы не было первой строчки, то возникла бы проблема, так как IE 3 не поддерживает background для BODY в таблицах стилей, встроенных через тэг <LINK>. Но в этом случае тот факт, что цвет - белый не вызывает конфликтов с background, потому что IE 3 игнорирует color: white и применяет color: black взамен;
  5. Можно использовать комментарий после селектора, тогда IE3 проигнорирует класс:
    P/* комментарий */.class.

Internet Explorer 4
  1. Если использовать строчный формат инструкции @import вместо формата url(), то IE 4 проигнорирует это включение. Например

    @import "hiddenfromie4.css";
  2. Можно вставить комментарий после свойства, например color/* */ : red;
  3. Если указать после @import источник вывода (например @import url(hiddenfromie4.css) screen), то IE 4 проигнорирует включение;
  4. Если класс нужно включить только в IE 4, надо сделать так
    P/* comment */ .class {}.

Internet Explorer 5
  1. Комментарий после свойства color/* */ : red.

Opera
  1. Добавить класс или ID к BODY, а потом это все вместе к селектору. Например BODY.class P {hidden};
  2. Используйте класс или ID без различения прописных и строчных букв. Например <DIV id="body">, #Body P для того, чтобы скрыть это от Оперы;
  3. Можно взять свойство в кавычки. Например color: "red";
  4. Используйте открывающий тэг комментария SGML в той же линии, где нахордится селектор дял того, чтобы скрыть эту строку от Оперы:
    <!-- P {color: red} (перед селектором не должно быть переноса строки)
  5. Пропустите # перед цветом, чтобы скрыть его от Оперы.

Netscape 4
  1. Используйте !important - Netscape игнорирует эту инструкцию; к примеру, P {color: red !important} P {color: blue} будет синим в Netscape (и в IE 3, но по другой причине) и красным в IE 4-5 и Opera;
  2. Заключать стили в @media all {} (или @media screen);
  3. Если font-size задаете в пикселях, опустите px для скрытия от Netscape; например, font-size: 12;
  4. Используйте обратный слэш для скрытия от Netscape - P \{ {color: red; background: green};
  5. Включайте стили через @import - Netscape не поддерживает эту инструкцию;
  6. Обозначьте таблицу стиле для media="all" (т.е., <LINK href="css.css" rel="stylesheet" type="text/css" media="all"> ;<STYLE type="text/css" media="all">) - это скроет стили от Netscape;
  7. Описывайте стили, используя HTML селектор - Netscape не поддерживает его;
Данное описание фишек не претендует на полноту, однако здесь описаны наиболее простые и полезные приемы. Осталась последняя и довольно интересная часть проблемы кросс-браузерного CSS - различные таблицы стилей для каждого браузера. О ней в следующий раз.
заголовок - CSS

Новости сайта Ссылки/только полезные ресурсы не нажимать! Пишите письма
новости

14 мая 2001. Последнее по CSS/ Кросс-браузерность:
раздельное питание


3 мая 2001. Новенькое по CSS/ Кросс-браузерность:
фишки слепого браузера


18 апреля 2001. Новенькое по CSS/ Кросс-браузерность:
не наступай на грабли


11 апреля 2001. Новый материал по HTML/ Логические тэги:
облегчаем жизнь


30 марта 2001. Ну наконец-то! Новый материал по HTML/ Favicon:
плюсы и минусы


21 марта 2001. Новый материал по CSS/ секреты CSS:
правильные стили (IV)


15 марта 2001. Новый материал по CSS/ секреты CSS:
правильные стили (III)


CSS
Если HTML - это скелет сайта, то CSS - его мозг, так как стили обычно находятся в "голове" <HEADER> :) (если они встречаются где-нибудь еще, то это явно выраженный спинной мозг)

баги нашей жизни/
IE 5.x


баги нашей жизни/
Opera 3.x


баги нашей жизни/
Netscape 4.x (I)


баги нашей жизни/
Netscape 4.x (II)


поддержка CSS/
базовые концепции


CSS/
проблемы background'а


секреты CSS/
правильные стили (I)


секреты CSS/
правильные стили (II)


секреты CSS/
правильные стили (III)


секреты CSS/
правильные стили (IV)


секреты CSS/
кросс-браузерный CSS(I)


секреты CSS/
кросс-браузерный CSS(II)


секреты CSS/
кросс-браузерный CSS(III)


 

Hosted by uCoz