Главные новости

  • Prev
  • Next

Валидный CSS в разных браузерах

Опубликовано в : 19-12-2008 | Автор : admin | В рубрике : Все для вебмастера

0

Сегодня существует много браузеров, и их список постоянно пополняется. Буквально недавно появился новый браузер от Google.

Валидный код css для разных БраузеровСписок браузеров, на которые стоит обратить внимание при создании сайтов: Internet Explorer, Google Chrome, Mozilla Firefox, MyIE, Netscape, Opera, Safari.

Из них самые популярные среди пользователей интернета, это Internet Explorer, Firefox и Opera.

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

Их принцип состоит в том, чтобы посылать  браузеру одни команды CSS, а всем остальным — другие, которые имеют приоритет перед первыми. Т.е. они  используются для включения или скрытия CSS от определенных браузеров. Зачастую трюки применяются для обхождения дефектов Internet Explorer.

1.    Internet Explorer.

IE плохо относится к пробелу перед закрытием тега </td>, или переносу его на новую строку.

Пример:

<td>
Не правильно!
</td>
<td>Правильно!</td>

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

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

<!--[if условие]> HTML CODE <![endif]-->

Если же вы хотите проигнорировать эксплорером какой-то кусок кода, то используйте такой комментарий:

<!--[if !condition]> HTML CODE <![endif]-->

Условие может быть таким: IE – для любой версии IE
lt IE v – (less than) для всех браузеров IE, версия которых меньше чем v
lte IE v – (less than or equal) для всех браузеров IE, версия которых меньше чем v, или такая же
gte IE v – (greater than or equal) – для IE, версия которых больше или равна v
gt IE v – (greater than) – для IE, версия которых больше v.

Пример использования:

<!--[if lte IE 6]> <link rel="stylesheet" type="text/css" href="/ie_sucks.css" /> <![endif]-->

Индивидуальные хаки для определенной версии IE

а)  Internet Explorer 6.0 и ниже

1.    .style {
2.      _background: #03F;
3.    }
4.    /* код валидный */
1.    * html .style {
2.      background: #03F;
3.    }
4.    /* код валидный */

б)  Internet Explorer  7.0

1.    *:first-child+html .style {
2.      background: #F00;
3.    }
4.    /* код валидный */
1.    *+html .style {
2.      background: #F00;
3.    }
4.    /* код валидный */

в)  Internet Explorer 8.0

1.    *+html .style {
2.      background: #F00;
3.    }
4.    /* код валидный */

2.    FireFox

Условные комментарии работают только в FireFox.

1.    html:root .style {
2.      background: #FA0;
3.    }
1.    .style, x:-moz-any-link {
2.      background: #FA0;
3.    }
1.    html:not([lang*=""]):not(:only-child) .style {
2.      background: #FA0;
3.    }

3.    Opera

Как правило, если удавалось достигнуть одинаковой картинки в ИЕ и в МФ, то и в Опере после этого всё было нормально. Однако особенностью этого браузера является то что по краям браузера остаются отступы. Что бы их убрать не достаточно указать BODY { margin: 0px; }. Необходимо еще прописать padding: 0px;

Условные комментарии работают только в Opera.

1.    @media all and (min-width: 0) {
2.      .style { background: #FF0; }
3.    }
1.    html:first-child .style {
2.      background: #FF0;
3.    }
4.    /* код валидный */

4.    Safari

Условные комментарии работают только в Safari.

1.    html:root .style {
2.      background: #FA0;
3.    }

Комментирование записи запрещено.