HTML-элемент с двойным атрибутом - PullRequest
2 голосов
/ 11 ноября 2009

(вопрос ниже является гипотетическим, но для удобства чтения я спрошу, как будто я на самом деле это делаю)

Я создаю сайт в HTML 5. К сожалению, IE не поддерживает такие элементы HTML5, как "header" и "nav". Я надеялся, что это будет относиться к ним как к "div", но это не так. Он просто действует так, как будто их там нет (то есть к ним не применяется CSS).

Я бы хотел исправить это, предоставив IE динамически преобразованный HTML. Я просто буду использовать обычные функции замены строк (в PHP, не так уж важно), чтобы заменить все вхождения

<header>

с

<div class="header>

и так далее (я соответствующим образом преобразую CSS). Это должно быть хорошо, но как насчет этого:

<header class="foo">

С самым простым кодом замены это станет

<div class="header" class="foo">

Это законно в HTML? И будет ли в итоге атрибут «header foo» или просто одним из них?

(Да, я знаю, что нормальный способ получить несколько классов -

<div class="header foo">

)

Ответы [ 3 ]

6 голосов
/ 11 ноября 2009

Нет, у вас может быть только один атрибут класса, например:

<div class="header foo">

Если у вас есть два или более атрибутов класса, я думаю, что он просто использует первый.

2 голосов
/ 11 ноября 2009

Если он обрабатывается как XHTML, он будет неправильно сформирован и выдаст ошибку, и я ожидаю, что любой совместимый анализатор HTML сделает это.

1 голос
/ 11 ноября 2009

Несмотря на то, что клиент использует JavaScript, есть способ заставить IE работать более корректно с новыми элементами HTML5:

http://remysharp.com/2009/01/07/html5-enabling-script/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...