Развитие HTML в определенном смысле зашло в тупик - новые теги уже не нужны, поскольку хватает существующих, к тому же акцент разработки веб-страниц сместился на стили, которые расширяют возможности по оформлению документов. Естественно, CSS никак не подменяет HTML, но зато позволяет использовать ограниченный набор тегов, а вид элементов, их положение и различные параметры, задавать через стили.
Определенным ограничением HTML является и то, что он относится к формальным языкам, в том смысле, что теги и их иерархическая структура жестко описаны в спецификации. Поэтому популярность набирает XML, с помощью которого можно создавать собственные теги и формировать их структуру. Разница между HTML и XML состоит не только в тегах, но и правилах написания кода. Браузер при работе с HTML «закрывает глаза» на разные мелкие огрехи и недочеты в структуре или тому, что не корректно указан атрибут. С XML такие фокусы не проходят, поэтому браузер выдаст ошибку о том, что документ неверно сформирован.
Чтобы научить разработчиков «правильному» мышлению, изменить их стиль написания кода, а также сократить разрыв между HTML и XML, и был разработан XHTML, как промежуточный этап между ними.
XHTML (EXtensible HyperText Markup Language, расширяемый язык разметки гипертекста) предназначен для замены HTML и считается его более строгой версией. Вообще, W3C определяет XHTML как последнюю версию HTML, которая постепенно его вытеснит. Так ли это будет обстоять на самом деле, покажет только время.
Если рассуждать о некотором идеальном коде веб-страницы, то его можно сравнить с программой, которая не будет скомпилирована до тех пор, пока все ошибки не исправлены. Браузер выступает в роли компилятора и не отображает документ, если он не соответствует спецификации. XHTML, сохраняя все особенности HTML, вносит более строгие правила создания страниц, чтобы приблизиться к «идеальному» коду. Это позволяет делать сайты независимыми от устройства отображения и браузера. Иными словами, сайт будет корректно показываться во всех современных браузерах и платформах вроде компьютеров, смартфонов, КПК, нетбуках и др.
На деле все обстоит более приземленно. Разработчики браузеров не могут позволить себе, чтобы их детище работало только с «правильным» кодом. А все из-за того, что большая часть сайтов в мире просто не будет отображаться в таком браузере. Виноваты в таком положении вещей и разработчики и пользователи. Первые не обеспечили должную поддержку спецификации в своих браузерах, а вторые не потрудились ей следовать.
По этим причинам XHTML 1.x является всего лишь подобием HTML, но с более строгим синтаксисом, а не тем перспективным языком разметки, на который обязательно стоит переходить из-за его уникальных возможностей.
При написании кода XHTML придерживаются того же синтаксиса, который характерен для HTML. При этом разница между HTML и XHTML состоит в наборе некоторых обязательных правил.
Правила XHTML следующие.
- Все теги и их атрибуты должны быть набраны в нижнем регистре (строчными символами).
- Значения любых атрибутов необходимо заключать в кавычки.
- Требуется закрывать все теги, даже такие, которым не сопоставлен закрывающий тег.
- Должна соблюдаться правильная вложенность тегов.
- Нельзя использовать сокращенные атрибуты тегов.
- Вместо атрибута name следует указывать id .
- Следует определять DTD (document type definition, описание типа документа) с помощью элемента .
Теги должны быть набраны в нижнем регистре
Это правило возникло из-за того, что XHTML чувствителен к регистру символов, поэтому для него теги
и
различаются. Чтобы не возникало путаницы, синтаксис принудительно заставляет указывать все теги, а также их атрибуты в нижнем регистре. В примере 3.1 приводится неверное использование тегов.
Пример 3.1. Ошибочное написание тегов
XHTML 1.0 IE Cr Op Sa Fx
Lorem ipsum dolor sit amet...
В данном примере теги
иНабраны прописными символами, что является ошибкой. В примере 3.2 показан корректный код.
Пример 3.2. Правильное написание тегов
XHTML 1.0 IE Cr Op Sa Fx
Lorem ipsum dolor sit amet...
Значения любых атрибутов необходимо заключать в кавычки
Хотя в HTML также требуется заключать значения в кавычки, но их отсутствие никак не влияет на корректность кода. Так что можно сказать, что в HTML применение кавычек это лишь рекомендация. В XHTML же использование кавычек возведено в правило и любые значения атрибутов требуется указывать только в них (пример 3.3).
Пример 3.3. Использование кавычек
XHTML 1.0 IE Cr Op Sa Fx
Чебурашка | Шапокляк |
---|---|
1 | 5 |
4 | 13 |
В данном примере все атрибуты тега
задаются
в кавычках.
Требуется закрывать все тегиВ HTML теги делятся на две категории - парные теги, называемые еще контейнерами и одинарные теги. Парные теги состоят из открывающего и закрывающего тега, причем в некоторых случаях закрывающий тег можно опустить. В XHTML закрывающий тег требуется всегда и везде. В примере 3.4 показан код с ошибкой, из-за того, что отсутствует тег .Пример 3.4. Нет закрывающего тега XHTML 1.0 IE Cr Op Sa Fx
и лезет, крадучись, в самолёт, и бомбу в брюхо ему кладёт, Некоторые разработчики игнорируют закрывающие теги , , , но в XHTML их отсутствие считается ошибкой. В примере 3.5 показано корректное использование списков.Пример 3.5. Добавление списка XHTML 1.0 IE Cr Op Sa Fx
В данном примере каждому открывающему тегу соответствует его закрывающий тег. Элемент не является частью XHTML-документа, поэтому для него закрывающего тега не требуется. Что касается одинарных тегов, то они должны завершаться слэшем перед закрывающей угловой скобкой, как показано в примере 3.6. Пример 3.6. Добавление изображения XHTML 1.0 IE Cr Op Sa Fx
В данном примере обратите внимание на обязательный пробел, который предшествует конструкции /> . В табл. 3.1 приведены некоторые теги HTML и их запись в XHTML-документе. Должна соблюдаться правильная вложенность теговXHTML критично относится к ошибкам следующего типа: некорректная вложенность одного тега в другой и расположение тега в несоответствующем контейнере. Правильная вложенность теговКаждый тег должен располагаться внутри другого тега, при этом недопустимо их «пересечение», как это показано в примере 3.7. Пример 3.7. Ошибка с положением тегов XHTML 1.0 IE Cr Op Sa Fx
Lorem ipsum dolor sit amet... В данном примере закрывающий тег предшествует тегу , хотя должно быть наоборот, что и приводит к ошибке. Стоит поменять теги местами, как код становится корректным. Хотя валидатор кода и выдает ошибку в случае неправильного положения тегов, браузеры при этом правильно отображают веб-страницу. Иерархия теговВсе теги имеют строгую иерархическую систему в том смысле, что каждый тег должен находиться внутри другого тега и никак иначе. На условной вершине находится корневой элемент , а все остальные теги могут содержать внутри себя другие теги, которые называются дочерними. Соответственно дочерние теги располагаются в родительском элементе. Необходимо знать систему подчиненности тегов и следовать ей при написании кода XHTML. В примере 3.8 показана базовая структура документа. Пример 3.8. Структура документа XHTML 1.0 IE Cr Op Sa Fx
В данном примере вначале приводится тег , внутри которого располагаются теги и . Внутри раздела хранится заголовок документа (Нельзя использовать сокращенные атрибуты теговСокращенным называется атрибут без присвоенного значения. В примере 3.9 приведена форма с использованием таких атрибутов. Пример 3.9. Ошибка при использовании атрибутов XHTML 1.0 IE Cr Op Sa Fx
«Пустое значение», как еще называется подобная ошибка, легко исправляется, если присвоить атрибуту значение, совпадающее с названием. В табл. 3.2 приведены некоторые атрибуты и как они записываются в HTML и XHTML.
В примере 3.10 показано корректное использование вышеприведенной формы. Пример 3.10. Правильное использование атрибутов XHTML 1.0 IE Cr Op Sa Fx
Вместо атрибута name необходимо указывать idАтрибут name определяется в HTML для тегов , , Пример 3.11. Идентификатор рисунка XHTML 1.0 IE Cr Op Sa Fx
Указанное правило не применяется к элементам форм, вроде , где без атрибута name вообще не обойтись. Следует определять DTDВсе XHTML-документы обязательно должны содержать элемент в первой строке кода, а также придерживаться иерархической структуры вложения тегов. При выборе DOCTYPE необходимо чётко определиться, какой из двух стандартов выбрать: HTML или XHTML . И для облегчения Вашего выбора я решил разобрать разницу между HTML и XHTML . Главное отличие между HTML и XHTML в том, что XHTML основан на синтаксисе XML . А, следовательно, он более строгий, и в нём нельзя допускать тех вольностей, которые можно допустить в HTML . А теперь по пунктам разберём особенности синтаксиса XHTML : 1. Каждый тег должен закрыватьсяПарные теги должны закрываться и в HTML тоже, но все мы знаем, что в HTML существует множество одиночных тегов (например, <img >), и мы смело могли написать таким образом:
Однако, в XHTML все теги должны закрываться, даже одиночные, причём закрываются они следующим образом:
Разница только в слеше перед второй угловой скобкой. 2. Все спецсимволы должны быть заменены на сущностиТо есть нельзя писать вот так: "& ", нужно писать этот символ только сущностью, то есть "& ". В HTML подобного правила не существует. 3. Все значения атрибутов должны быть в кавычках.Все мы с Вами знаем, что в HTML можно написать вот так:
То есть у нас значение атрибута "width " находится без кавычек. В XHTML это недопустимо, и там надо писать вот так:
4. Все теги и атрибуты должны писаться в нижнем регистре.Скажу честно, я никогда не понимал, зачем люди пишут теги в верхнем регистре. На мой взгляд, это уродует код, и возникает ощущение, что его писали не отжимая "CAPSLOCK ". Но если в HTML - это дело вкуса, то в XHTML - это правило: писать только в нижнем регистре. Как видите, разница только в синтаксисе. Есть также и другие мелкие различия, но мы о них говорить не будем. Другими словами, единственное преимущество XHTML - это более лёгкий парсинг документа . А также XHTML очень подходит любителям "чистого" кода. Больше никаких преимуществ нет. Все браузеры корректно отображают и HTML , и XHTML . Причём зачастую браузеры XHTML обрабатывают как HTML , поэтому для внешнего вида серьёзных различий в HTML и XHTML точно не будет. Я для себя выбрал XHTML , потому что я очень люблю, когда код "чистый" и когда он легко разбирается на составные части (парсинг ). Да, и вообще я привык к строгому синтаксису других языков, например, Java, поэтому всё равно я буду писать максимально валидно. А что выберите Вы - решать только Вам, а об отличиях HTML и XHTML Вы уже знаете. 20.05.16 3.4KИ HTML , и XHTML — это языки для создания веб-страниц. HTML построен на основе SGML , а XHTML — на основе XML . Они похожи на две стороны одной медали. XHTML был создан из HTML с целью соответствия стандартам XML . Следовательно, XHTML является более строгим по сравнению с HTML и не позволяет отступать от правил написания кода. Причиной разработки XHTML послужила путаница с некоторыми тегами. Страницы, написанные на HTML , выводились в разных браузерах по-разному. Сравнительная таблица
Обзор HTML и XHTMLHTML является основным языком разметки веб-страниц. Он создает структурированные документы, выделяя в них такие элементы, как заголовки, списки, ссылки, цитаты и т.д. Это позволяет встраивать изображения и объекты для создания интерактивных форм. HTML задается с помощью тегов в угловых скобках — например, . Также в его коде могут содержаться скрипты, написанные на JavaScript . XHTML
представляет собой семейство языков XML
, которые расширяют или продолжают версии HTML
. Они не допускают пропусков любых тегов или минимизации атрибутов. XHTML
требует, чтобы каждому открывающемуся тегу соответствовал закрывающийся тег в корректном порядке. Например, если в языке гипертекста допускается использование одиночного тега Функции документов HTML и XHTMLСинтаксис HTML состоит из следующих компонентов: открывающий и закрывающий тег, атрибуты элементов (задаваемые в тегах ), текстовый и графический контент. HTML-элемент — это все, что находится между тегами, включая сами теги. Документ XHTML содержит только один корневой элемент. Все элементы, включая переменные, должны быть написаны в нижнем регистре, а присвоенные значения — заключены в кавычки, закрыты и вложены. В XHTML это является обязательным требованием — в отличие от HTML . Объявление DOCTYPE XHTML определяет правила для документов, которым необходимо следовать. Основной синтаксис HTML
допускает использование множества сокращений, чего не допускается в XHTML
. Например, элементов, для которых необязательно наличие и открывающегося, и закрывающегося тега. XHTML
требует, чтобы все элементы имели и открывающийся, и закрывающийся тег. В то же время XHTML
вводит новые сокращения: тег XHTML
может быть открыт и закрыт с помощью косой черты ( Введение такого синтаксиса, который не используется в объявлениях SGML
для HTML 4.01
, могло привести к путанице в приложениях на ранних стадиях. Чтобы решить эту проблему, нужно использовать пробел перед закрытием тега: Спецификация XHTML и HTMLHTML и XHTML могут быть задокументированы совместно. И HTML 4.01 , и XHTML 1.0 имеют три подспецификации — строгую, нестрогую и фрэймовую. Отличие документов HTML и XHTML заключается в декларировании документов. Другие отличия синтаксические. HTML допускает отсутствие закрывающегося тега, пустые элементы без закрывающегося тега. Расширяемый язык разметки гипертекста очень строг в отношении открывающихся и закрывающихся тегов XHTML . Он использует встроенный язык определения функционала атрибутов. Все требования к синтаксису XML соблюдаются в XHTML -документе. Но эти различия проявляются только тогда, когда XHTML -документ используется как приложение XML ; то есть как MIME-типы приложение / XHTML + XML , приложение / XML или текст / XML . Документ XHTML , используемый как MIME-тип текст / HTML должен интерпретироваться как HTML , так что в данном случае применяются правила HTML . CSS , написанный для XHTML , используемого, как MIME-тип текст / HTML , может работать некорректно в документе, который применяется как, как MIME-тип приложение / XHTML + XML . Для получения дополнительной информации о MIME-типах ознакомьтесь с соответствующей документацией. Это может быть важно, когда вы используете документы XHTML , как текст / HTML . Если не знать о данных различиях, вы можете создать CSS , который не будут работать как ожидается, если документ используется, как XHTML . Там, где встречаются термины «XHTML » и «XHTML document «, предполагается, что в оставшейся части этого раздела они определяют использование разметки XHTML , как MIME-тип XML . XHTML-разметка , используемая в качестве текста / HTML , является HTML-документом . Как перейти с HTML на XHTML
XHTML (от англ. Extensible Hypertext Markup Language - модульный язык разметки гипертекста) - расширяемое семейство всех языков и модулей разметки страниц на основе XML , только с расширением и повторением возможностей HTML 4 . Версии XHTMLXHTML 1.0 одобрена консорциумом Всемирной паутины еще 26 января 2000 года. Уже 1 августа 2002 года была опубликована вторая измененная редакция спецификации. XHTML 1.0 (аналогично HTML 4 ) состоит из трех типов документов:
XHTML 1.1 - версия, содержащая XHTML 1.1 Модульный, в котором авторам разрешено импортировать любые дополнительные свойства в разметку. Для XHTML Basic и XHTML MP характерны:
XHTML 2.0Последняя версия XHTML, которая так и не достигла полноценного статуса рекомендации. Деятельность разработчиков этой версии была остановлена в конце 2010 года, при этом все ресурсы скомбинировали в общую рабочую группу HTML 5 . Результаты наработок в декабре 2010 года напечатаны в виде отчета работающей группы. Недостатки XHTMLОбзор всех источников и опыта работы профессионалов дает возможность собрать все причины, по которым использование XHTML можно назвать нецелесообразным. Основной толчок к определению этих причин дал обзор XTML 5 . Он позволил выделить 12 причин, из-за которых не рекомендуется пользоваться XHTML. 4. HTML - более оптимизированная разметка под любые поисковые системы, по сравнению с XHTML, ведь в нем пишется меньше кода. 5. Заинтересованным в актуальной защите авторских прав людям HTML намного тяжелее парсить - автоматически копировать, так как XHTML как раз и предназначен для максимальной простоты парсинга. 6. Гарантия надежности при автоматическом копировании XML-документа. Этому свидетельствует факт завершения работы в случае нахождения ошибки. 7. Internet Explorer версий 6 и 7 не поддерживают application/xhtml+xml . 8. Большинство HTML документов не индексируются многими поисковыми системами так, как XML . 9. Верстать HTML намного удобнее, легче, и проще. 10. Скрипты XHTML Document.write не работают, только простая переписка, использующая DOM-функции. 11. Используя DOM-функции, нужно опускать все названия элементов в нижний регистр. Такой же процедуры нужно придерживаться в отношении селекторов в стилях. 12. XHTML-формат не поддерживает функциональные программы document.body , document.images и document.forms . 13. Невозможность содержания всех элементов в прежнем виде, так как любой значок “>” может нарушить готовую структуру. А если его экранировать с помощью “>” или путем заключения в блоки CDATA, можно сломать HTML браузеры. 14. Не реальность автоматического распространения фоновых цветов body в XHTML на все окно. 15. Ожидание нового усовершенствованного и более популярного стандарта HTML 5 , с помощью которого заменится изученный HTML 4 -формат. Лучшие статьи по теме |
---|