На все больше и больше веб -сайтов использование XHTML заменяет HTML4 на очень быстрой скорости. Тем не менее, некоторые основные браузеры в настоящее время не поддерживают XHTML, и некоторые производители веб -страниц не понимают различий между XHTML и HTML4, что делает XHTML медленным в разработке Интернета.
Xhtml is xml, а не htmlВ настоящее время одно из главных недоразумений о XHTML заключается в том, что это другая версия HTML. Одним из фактов, который вызывает это недоразумение, является то, что Microsoft Internet Explorer поддерживает только XHTML с текстом формата MIME/HTML, а не рекомендуемым форматом приложения/XHTML+XML.
Когда страница XHTML проанализирована в формате MIME Text/HTML, она не имеет разницы в HTML -странице, и когда она проанализирована в формате MIME текста/XML или приложения/XHTML+XML, она будет соответствовать строгим правилам записи и отображения XML.
Правильный формат XHTML - это программа XML и необходимо следовать следующим строгим правилам при написании: 1. Персонажи <и и не разрешают появляться в контенте XHTML документа, если они не включены в тег CDATA (<! [CDATA [...]]>) 2. Метка для комментариев (<! --.-->) не может содержать два последовательных горизонтальных стержня (-) 3. Содержание, включенное в тег комментариев (<!-..-->) будет проигнорировано Проблемы в стиле и контенте сценарияСодержание внутри стиля и тегов сценариев вызовет некоторые различия, когда XHTML проанализирован в формате XML (а не в формате HTML).
JavaScript содержит символы, которые не могут существовать в XHTML Некоторые специальные символы в JavaScript - это символы, которые не могут существовать вне тега CDATA XHTML.<script type = text/javascript>
var i = 0;
while (++ i <10) {
// ...
}
</script>
ПРИМЕЧАНИЕ. Приведенный выше пример кода не является хорошим форматом XHTML, поскольку он использует не допустимые теги в XHTML или XML <
Используйте комментарии в стиле и контенте сценарияАвторы, знакомые с HTML, обычно понимают, что размещение стиля и контента тега сценариев в теги комментариев скрыт это содержимое в браузере, но некоторые браузеры не могут их понять.
<стиль типа = текст/css>
<!-
Тело {фоновый цвет: синий; Цвет: желтый;}
->
</style>
<script type = text/javascript>
<!-
var i = 0;
var sum = 0;
для (i = 0; i <10; ++ i)
{
sum += i;
}
Alert ('sum =' + sum);
// ->
</script>
Приведенный выше пример показывает, как игнорировать контент в теге комментариев в браузере. В то же время этот пример также показывает разницу между содержанием браузера в формате текста/XML и форматом приложения/xhtml+XML.
Mozilla 1.1+ / Opera 7
CSS не применяется, JavaScript не выполняется
NetScape 7,0x / Mozilla 1.0.x
Не применение CSS, но выполнение JavaScript
Internet Explorer 5.5+
Документ не отображается. (См.: Https://developer.mozilla.org/ta ... _in_xhtml_documents)
Стиль и Javascript содержат два последовательных горизонтальных стержня (-)Другая проблема возникает при использовании тегов комментариев для обработки в JavaScript на странице XHTML, заключается в том, что в JavaScript будет два последовательных горизонтальных столбца (-):
<script type = text/javascript>
<!-
var i;
var sum = 0;
для (i = 10; i> 0; -i)
{
sum += i;
}
// ->
</script>
Используйте CDATA вместо комментариевВставка содержимого в тег сценария в блок CDATA может решить проблему двух последовательных стержней в комментариях, но это сделает его не поддержанным некоторыми более низкими версиями браузеров, потому что они не могут понять XML. К счастью, мы можем комментировать блоки CDATA, используя комментаторы в JavaScript для достижения совместимости.
<script type = text/javascript>
// <! [CDATA [
var i = 0;
пока (++ i <10)
{
// ...
}
//]]>
</script>
Рекомендуемый метод обработки совместимости XHTML и HTMLНе пишите стиль и сценарий прямо на страницах XHTML. Хорошей альтернативой является использование внешних файлов для записи CSS и JavaScript, прежде чем представить его в XHTML.
Это рекомендательное решение выглядит очень хорошо. В любом случае, это заставляет страницу меняться с текста/HTML на Application/xhtml+XML, по крайней мере, в ближайшие несколько лет.