Ошибки браузеров при использовании CSS


Обозначения
NC4 Netscape Communicator 4.x
IE4 Microsoft Internet Explorer 4.x
MacIE4.5 Microsoft Internet Explorer 4.5 для Macintosh
MacNav4 Netscape 4 для Macintosh

Основные понятия
Импорт таблицы стилей
@import

IE4/5 импортирует файл даже, когда инструкция @import размещается в конце таблицы стилей документа. Это является техническим нарушением CSS1 спецификации.

Наследование NC4 плохо работает с наследованием вообще, в особенности это касается при работе с таблицами и списками.
Селекторы Class IE4/5 позволяет именам классов начинаться с цифр, однако это не разрешено CSS1.
Селекторы ID IE4/5 позволяет именам ID начинаться с цифр, что не разрешено CSS1. Если одинаковое значение параметра ID имеют несколько элементов, все браузеры применяют стиль не к одному элементу, а ко всем. Из-за этого возникают трудности с обнаружением ошибок.
Контекстные селекторы

MacNav4 имеет проблемы с контекстными селекторами содержащие таблицы. Пример HTML BODY TABLE P должным образом не работает.


Рамки и границы
margin-top
margin-bottom
Для встроенных элементов отступы имеют проблемы, либо полностью не поддерживаются; см. margin для подробностей.
margin-right
margin-left
Opera 4 иногда применяет отступ от правого (левого) края браузера ко всем полям встроенного элемента. Это явление происходит случайно, но достаточно часто, чтобы быть замеченным.
margin

Все отступы имеют проблемы или не поддерживаются полностью для встроенных элементов. В случае параметра margin, то он хорошо поддерживается для блочных элементов в IE4/5, но в то же время для встроенных элементов игнорируется полностью. MacIE5 правильно работает с отступами со всеми элементами. NC4 работает корректно, пока параметр margin не применяется к плавающим или встроенным элементам. Opera 4 имеет проблемы с правыми и левыми отступами для встроенных элементов.

padding-top
padding-right
padding-bottom
padding-left

Для встроенных элементов отступы содержат проблемы либо полностью не поддерживаются; см. padding для подробностей.
padding

Все отступы имеют проблемы или не поддерживаются полностью для встроенных элементов. Opera 3.6 игнорирует отрицательные значения параметра padding, но изменит высоту строки встроенного элемента, основываясь на некорректных значениях отступа. IE4/5 правильно работает для блочных элементов, но встроенные элементы игнорирует полностью. NC4 работает корректно, пока параметр padding не применяется к плавающим или встроенным элементам.

border-top-width
border-left-width
border-bottom-width
border-right-width
border-width

Если стиль границы не установлен с помощью параметра border-style, NC4 все равно создает видимые границы. При установке стиля границы, они отрисовываются не на всех сторонах. IE4/5 правильно работает для блочных элементов, но встроенные элементы игнорирует полностью.

border-color NC4 и Opera 3.6 не могут устанавливать разные цвета границ для индивидуальных сторон элемента, как например border-color: red green blue orange. IE не может применять цвета границ к встроенным элементам.
border-style

Если параметр border-style принимает значение none, NC4 не обнуляет ширину рамки, которая установлена параметром border-width.

border-top
border-right
border-bottom
border-left
Opera 3 не применяет стили границы к элементам таблицы. IE4/5 не применяют границы к встроенным элементам.
border Opera 3 не применяет стили границы к элементам таблицы. IE4/5 не применяют границы к встроенным элементам. Opera 5 имеет странную случайную ошибку, которая выражается в том, что для первого встроенного элемента граница отрисовывается слишком высоко, в то время, как содержимое остается где должно.
width NC4 устанавливает ширину границы очень противоречивым образом, но корректно работает для текстовых элементов и изображений. IE4/5 применяет этот параметр для изображений и таблиц, но игнорирует его для текстовых элементов, например, таких как параграф и заголовки. Opera 3.6 удивительным образом делает изображения шириной 100%, но если окно браузера свернуть и развернуть, то все станет в норме.

Цвет и фон
background-color NC4 не применяет цвет фона к блоку текста и отступам вокруг него, а только к тексту в элементе. Чтобы избавиться от этого недостатка, можно сделать вокруг области границу нулевой толщины.
background-color:
transparent
NC4 настаивает на применении этого параметра к родителю элемента, а не к самому элементу непосредственно. Это может привести к появлению дыр в фоне родительского элемента.

Opera 4 имеет ошибку, которая обнаруживается, когда фоновый рисунок веб-страницы повторяется, а фон элемента прозрачен (по умолчанию либо установлен явно). В этом случае возможны визуальные аномалии на странице.

background-repeat:
repeat

IE4 повторяет фоновый рисунок вниз и направо. Более правильное поведение для изображения фона - повторяться в обоих направлениях по горизонтали (для параметра repeat-x) или вертикали (параметр repeat-y).

NC4 технически корректно обрабатывает это свойство, но поскольку он не поддерживает параметр background-position, нет возможности узнать было ли повторение фонового изображения в разных направлениях.

Opera 3.6, MacIE4.5, и IE5 ведут себя правильно.

background-repeat:
repeat-x
IE4 повторяет фоновый рисунок только вправо, вместо того, чтобы одновременно его повторять в обе стороны.
background-repeat:
repeat-y
IE4 повторяет фоновый рисунок только вниз, вместо того, чтобы одновременно его повторять вверх и вниз.
background NC4 работает некорректно с отображением фона. Если вокруг элемента нет никакой границы, то фон будет только под текстом, а не у всей области. Даже если граница добавлена, между ней и областью будет небольшой промежуток, избавиться от которого нет возможности.

Свойства шрифта
font-family: cursive Несмотря на установку использовать курсивный шрифт, Opera не воспринимает этот параметр и заменяет курсив другим шрифтом.
font-variant: small-caps Это свойство шрифта отображает все строчные буквы как прописные буквы уменьшенного размера. IE4/5 делает все буквы прописными, в то время, как заглавные буквы должны оставаться неизменными.
font-size:
xx-small -
xx-large
При задании абсолютного размера шрифта параметром small, IE4/5 будет показывать шрифт таким же размером, что и шрифт без стиля, который имеет размер medium. Указывание абсолютного размера шрифта font-size: medium приведет к различным размерам шрифта в Netscape и IE. Что противоречит спецификации CSS и вводит в заблуждение многих разработчиков.

Свойства текста
text-decoration: none Согласно спецификации, если для элемента задан вид форматирования, а для его наследника нет, все равно свойства родителя будут передаваться его вложенным элементам. Так, если используется подчеркнутый параграф, а внутри него расположен неподчеркнутый элемент color, выделяющий слово другим цветом, все слова в параграфе будут подчеркнуты, включая и выделенные другим цветом слова. На практике, однако, установка text-decoration: none уберет все эффекты, независимо от оформления родительского элемента. Единственные исключения - Opera и MacIE5, которые выполняют эту часть спецификации правильно.Opera 4/5 и Netscape 6 не изменяют параметры изображений внутри тега SPAN при задании параметров оформления родительского элемента. Вдобавок, Netscape 6 не распространяет оформление родительского элемента на дочерние, а переносит только подчеркивание.
Несмотря на кажущуюся простоту проблемы, особенность параметра text-decoration является головной болью для разработчиков сайтов.
text-decoration: blink Этот параметр не описан в CSS1 и поддерживается только в Netscape.
text-align: justify В NC4 при размещении текста в таблице, он может и не выравниваться по ширине, но в остальных случаях все работает корректно.
line-height NC4 некорректно отрабатывает отрицательные значения этого параметра.
line-height Opera 3.6 использует цвет фона текста для всех встроенных элементов, независимо от установок цвета фона для этих элементов.



Предыдущая статья     Следующая статья     Список статей