когда XHTML может неожиданно вызвать проблемы в IE? - PullRequest
1 голос
/ 29 мая 2009

, поскольку IE не будет отображать XHTML как XHTML, а вместо этого обрабатывать его как HTML, когда это может вызвать проблемы для IE?

Ответы [ 4 ]

2 голосов
/ 29 мая 2009

Я знаю один случай, где

<div style="clear:both" />

в браузерах, поддерживающих XHTML, div закрывается. Но IE будет рассматривать div как все еще открытый, поэтому макет может привести к неожиданному результату позже.

1 голос
/ 04 января 2010
  • Самозакрывающийся синтаксис не будет работать (он будет работать только с элементами, которые всегда пусты в HTML). Сериализаторы XML могут генерировать <textarea/>, <script/> и т.п., которые по-разному разбивают страницы (вызывая сложное восстановление после ошибок, иногда включая повторный анализ оставшейся части страницы).

  • Явно закрытые «пустые» элементы HTML могут вести себя странно (</br> вставляет разрыв в IE).

  • <![CDATA[ вне жестко закодированных элементов HTML CDATA будут распознаваться как тег. Это не повлияет на выход и может привести к исчезновению некоторого контента.

  • В элементах HTML CDATA (а именно <script>) сущности не будут распознаваться. XHTML требует <script> if (1 &lt; 2) …, что в IE будет синтаксической ошибкой.

  • Фон <body> будет применяться по-разному в IE.

  • В CSS не будет кросс-браузерного синтаксиса для селекторов с поддержкой пространства имен.

  • Вы получите все подразумеваемые элементы HTML (например, <tbody> во всех таблицах) и скрытые элементы (обычно это не проблема, когда документ действителен, но другие браузеры не будут предупреждать вас, пока разметка хорошо сформирован).

  • Элементы и атрибуты с префиксами не будут иметь пространства имен и будут отличаться tagName в IE (что также недопустимо в XML). Они также не получат подходящего стиля и поведения по умолчанию (<xhtml:a> не может быть ссылкой).

  • Вы не сможете использовать методы, учитывающие пространство имен, такие как createElementNS (они не существуют в IE), .tagName будет в верхнем регистре в IE, но не во всех случаях.

  • Элементы и атрибуты с префиксами не будут иметь пространства имен и получат другое локальное имя в IE (что также недопустимо в XML).

Это только проблемы, связанные с переходом с рабочего XML-документа на HTML. Когда вы переходите от HTML (то есть того, что все ожидают и воспринимают как нормальное поведение) к реальному XML, возникает столько же сюрпризов, например, document.write не работает, делая большинство скриптов Google бесполезными.

1 голос
/ 29 мая 2009

Internet Explorer будет не в состоянии отличить документы XHTML от документов XML, если MIME-тип не указан как text / html. Однако, поскольку он полностью поддерживает HTML 4.01, большинство проблем возникает из-за несовместимых и нестандартных реализаций свойств позиционирования, макета и CSS. Чтобы избежать каких-либо проблем, лучше написать действительный XHTML и указать DOCTYPE.

Список всех известных ошибок Internet Explorer

0 голосов
/ 30 мая 2009

Все это применимо к любому браузеру, который рассматривает XHTML как text / html, а не как IE, но вы должны прочитать Приложение C спецификации XHTML 1.0 здесь: http://www.w3.org/TR/xhtml1/#guidelines

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