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


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


wa.artel.by




Использован материал c сайта http://www.richinstyle.com. Перевод by FireFalcon.

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

Оставим в сторонке браузеры версии 3 (если кому-то ну очень интересно, особенность подключения css-файлов для этих браузеров смотреть здесь. А для остальных подойдет вот такой скрипт:

/* (c) 2000 RichInStyle.com (www.richinstyle.com)*/

ua=navigator.userAgent;
l='<LINK rel="stylesheet" type="text/css" href="';
c='.css">';
if (ua.indexOf('IE 4')!=-1)document.write(l+'ie4'+c);
if (ua.indexOf('IE 5')!=-1)document.write(l+'ie5'+c);
if (ua.indexOf("Opera 5")!=-1)document.write(l+'op5'+c);
else if (ua.indexOf("compatible")==-1) {
if (ua.indexOf("/4")!=-1)document.write(l+'nn4'+c);
if (ua.indexOf("/5")!=-1)document.write(l+'nn5'+c);
}

А темплейт HTML-странички будет выглядет примерно вот таким образом:

<HTML>
<HEAD>

<!-Опционально -->
<STYLE type="text/css">
</STYLE>

<LINK rel="stylesheet" href="all.css" type="text/css">
<SCRIPT src="style.js" type="text/javascript"></SCRIPT>
<BODY bgcolor="#xxxxxx" text="#xxxxxx" alink="#xxxxxx" link="#xxxxxxx" vlink="#xxxxxx">

Есть вообще два различных способа для этих реализации стилей при таком разделении:

  1. Запихать работающие стили в all.css и потом лишь модифицировать их в файлах op5.css, ie5.css и т.д.
  2. Сделать каждую таблицу стилей полной

На первый взгляд, первый способ лучше. Однако при детальном рассмотрении это оказывается не так. Например, если вы захотите поместить объявления color и font в all.css, а margin и padding в css-файлы для каждого браузера, то это сделать проще. Однако нельзя включить все свойства (color, margin, padding font) в all.css, потому что баги вам житья не дадут. Таким образом приходим ко второму варианту.

Короче, если вам совершенно необходимо использовать особенности каждого браузера в полной мере, без разделения таблиц стилей не обойтись. Самый простой и наиболее часто употребляемый вариант - это когда надо разделить стили Opera 5, MSIE 5 и Netscape 4. Делается это так:

<HEAD>
<STYLE type="text/css">
@import url(style.css);
</STYLE>

Не понимает Netscape 4 этой конструкции. Так что пользуйтесь на здоровье!

заголовок - 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