Множественные атрибуты "стиля" в теге "span": что должно произойти?

Рассмотрим следующий фрагмент HTML с двумя атрибутами style:

<span style="color:blue" style="font-style:italic">Test</span>

В Opera 12.16 и Chrome 40 он отображается как синий текст без курсива, а Internet Explorer 9 - синим курсивом. Что, если что-либо, должен сказать стандарт, должен появиться?

Ответ 1

В HTML, SGML и XML атрибуты (1) не могут повторяться и должны определяться только одним элементом.

Итак, ваш пример:

<span style="color:blue" style="font-style:italic">Test</span>

не соответствует стандарту HTML и приведет к поведению undefined, что объясняет, почему разные браузеры визуализируют его по-разному.


Поскольку нет определенного способа интерпретировать это, браузеры могут интерпретировать его, однако они хотят и объединить их, или игнорировать их по своему усмотрению.

(1): Каждая статья, которую я могу найти, утверждает, что атрибуты являются парами "ключ/значение" или парами "атрибут-значение", в значительной степени подразумевая, что ключи должны быть уникальными. Лучший источник, который я могу найти в состояниях:

Имена атрибутов (id и status в этом примере) подчиняются тем же ограничениям, что и другие имена в XML; однако они не должны быть уникальными во всем DTD, но только в пределах списка атрибутов для данного элемента. (Акцент мой.)

Ответ 2

Разделите свои правила с помощью двоеточия в одном объявлении:

<span style="color:blue;font-style:italic">Test</span>