Чем отличается html от xhtml
Перейти к содержимому

Чем отличается html от xhtml

  • автор:

X HTML справочник | Особенности языка XHTML

XHTML (Extensible Hypertext Markup Language) – Расширяемый язык разметки гипертекста.

HTML 4.01 документ может содержать элементы XHTML, но не наоборот!

H овый HTML – HTML 5 по сути является дополненным новыми элементами и атрибутами XHTML.

Пример кода страницы сайта:

Чем отличается XHTML от HTML

Более подробно о различиях :

  • В XHTML все теги и атрибуты должны быть набраны в нижнем регистре, кроме тега .
  • Необходимо закрывать любые теги, в том числе одиночные, кроме :
    ,
    ,

    , , , , .

  • Запрещается использование сокращений для булевых атрибутов, параметры вписываются полностью. К примеру, актуально:

    , , вместо


    ,
  • Рекомендуется максимально семантически использовать теги: блок – для верстки, а таблицы – для табличного представления данных.

Расширением документа может быть .xhtml или .html , но чаше встречается второй способ.

X HTML справочник | Структура и код XHTML сайта

Автор проекта — Вася Митин | Дата публикации: Hoябрь 2009 | Обновление: Ноябрь 2018

XHTML код или Чем отличается XHTML от HTML XHTML справочник тегов

© 2009 — 2023 | При использовании материала, ссылайтесь на мой сайт!
По всем вопросам обращайтесь: go@ab-w.net | HTML и XHTML – отличия? – Не вопрос!

Разница между HTML и XHTML

Разница между HTML и 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 Вы уже знаете.

Создано 25.01.2011 13:59:48

  • Михаил Русаков
  • Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

    Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
    Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

    Если Вы не хотите пропустить новые материалы на сайте,
    то Вы можете подписаться на обновления: Подписаться на обновления

    Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

    Порекомендуйте эту статью друзьям:

    Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

    1. Кнопка:
      Она выглядит вот так:
    2. Текстовая ссылка:
      Она выглядит вот так: Как создать свой сайт
    3. BB-код ссылки для форумов (например, можете поставить её в подписи):

    Комментарии ( 13 ):

    mms 23.12.2012 05:13:49

    Спасибо познавательно и самое главное бес воды! Подскажите Михаил что лучше XHTML 1.0 и XHTML 1.1 Делаю дизайн для XHTML 1.0 остановился на пол пути и сомневаюсь.

    Admin 23.12.2012 10:50:10

    Я предпочитаю XHTML 1.1, как более новый стандарт.

    mms 23.12.2012 16:36:16

    Что посоветуешь переписать на XHTML 1.1? А с точи зрения поисковик систем? Ты верстаешь dle движки?

    Admin 23.12.2012 17:09:42

    Необязательно. Поисковым системам всё равно, какой там стандарт. С готовыми движками вообще не работаю уже давно.

    mms 23.12.2012 17:11:11

    Что посоветуешь переписать на XHTML 1.1?

    Admin 23.12.2012 17:33:39

    Необязательно, особой разницы нет.

    Strateg 17.06.2013 23:37:31

    И это все основные различия?? Хм. Не совсем понятны минусы XHTML? И почему бы тогда все страницы не верстать на нем? Ведь получается, что простой HTML-4 несколько хуже во по всем параметрам за XHTML.

    pavell 25.06.2013 22:28:01

    Если это вся разница тогда лучше xhtml я итак в нижнем регситре пишу. А ставить слеш на конце не так-уж трудно. А лутше он потому что не такой вольный по началу думал что это + в html его вольность но когда начал писать сайт и проверять на кросс браузерность то пошли проблемы из-за этого. И Валидный код легче будет сделать а чем больше код валидный тем правильней отображается страница если не ошибаюсь.

    pavell 25.06.2013 22:40:08

    1 только проблема чтоб поставить кавычки надо раскладку менять на русский. Можно как-то настроить чтоб кавычки на английской раскладке ставились. А то ведь так времени куча уходит на смену языка даж горячими клавишами код та длинный.

    Admin 26.06.2013 03:47:00

    Кавычки ставятся на английской раскладке: ctrl+э.

    XHTML

    XHTML — это основанный на XML язык разметки гипертекста, максимально приближенный к текущим стандартам HTML. XHTML отличается от HTML строгостью написания кода. Если HTML позволял писать практически любые конструкции и браузер их корректно распознавал, то теперь, с появлением XHTML, это стало невозможным. Последний требует строгого соблюдения всех правил, предъявляемых W3C. Строгие требования к оформлению XHTML-кода позволяют избежать многих ошибок ещё на стадии написания и отладки.

    Для приверженцев HTML хотелось бы отметить, что XHTML — это новый язык, который пришёл на смену старому HTML. Новых версий HTML больше не будет. В итоге все браузеры, как предполагается, перейдут на XHTML (очевидно, что при этом сохранится совместимость со старым HTML, но не более того). Так же хотим привести цитату из русского перевода спецификации XHTML от W3C: «Семейство XHTML создавалось с учетом общей совместимости пользовательских агентов. С помощью нового механизма профилирования пользовательских агентов и документов серверы, прокси и пользовательские агенты смогут преобразовывать содержимое наилучшим образом. В конечном счете, станет возможной разработка соответствующего XHTML содержимого, пригодного для любого соответствующего XHTML пользовательского агента» .

    XHTML совместим с HTML при соблюдении некоторых правил, описание которых можно найти в стандарте. Это означает, что даже самые старые браузеры, которые понимают HTML, будут работать и с XHTML.

    Для проверки правильности написания XHTML-кода существуют программы-валидаторы. Кроме того, пользовательские агенты, которые поддерживают XHTML, сами будут вам сообщать об ошибках в синтаксисе, если таковые возникнут.

    Отличия XHTML 1.0 от HTML

    Существует несколько требований, которые разработчик обязан выполнять:

      в начале документа должен указываться один из возможных DTD (Document Type Definition):

    • a не может содержать другие элементы a;
    • form не может содержать другие элементы form;
    • label не может содержать другие элементы label;
    • pre не может содержать img, object, big, small, sub или sup;
    • button не может содержать элементы input, select, textarea, label, button, form, fieldset, iframe или isindex;
    • & на &;
    • на <;
    • > на >.
    • декларация XML-документа в самом начале кода перед DTD ( );
    • следование элемента title сразу после открытия тега head;
    • использование атрибута id вместо name (name считается устаревшим атрибутом);
    • наличие атрибута type в элементах подключаемых файлов (таблиц стилей и скриптов);
    • отказ от использования атрибута target.

    Приведём минимальный код правильной XHTML-страницы:

        Заголовок  Содержимое документа  

    Если вставить этот код в файл, сохранить его как «file.html» и открыть через веб-сервер, то вся информация будет получена клиентом как >text/html<. То есть, как и обычная HTML-страница. Фактически для браузера это будет не XHTML, а HTML-документ. У XHTML есть свой собственный MIME -тип: .

    MIME — это специальный набор расширений, который указывает программам, как обрабатывать входящую информацию. Изначально MIME-типы были разработаны для почтовых программ, откуда и получили своё название.

    Итак, XHTML-данные правильно отдавать клиенту именно в формате , так как все преимущества, помимо кросс-браузерности (увеличение скорости анализа кода процессором XML, сообщение об ошибках самим браузером и пр.), могут достигаться только в случае, если пользовательский агент поддерживает XHTML и ему сообщается о том, что входящие данные — XHTML-код. Единственное, что надо помнить при отправке XHTML-кода: если браузер понимает XHTML, то только тогда информацию можно отправить как ; если же нет, то только как . Список современных клиентов, поддерживающих XHTML: MZ, Opera, Safari. IE, к сожалению, пока не понимает . Проверять, поддерживает ли пользовательский агент нужный MIME-тип можно по исходящему от браузера заголовку , где содержатся все MIME-типы, известные клиенту. Приведём пример, как это можно сделать с помощью Perl-скрипта:

    #!/usr/bin/perl -w # Выясняем, поддерживает ли браузер XHTML. my $html = "text/html"; my $xhtml = "application/xhtml+xml"; my $type = $ENV =~ m/\Q$xhtml\E(?!\s*;\s*q=0)/ ? $xhtml : $html; # Вывод соответствующего заголовка. print "Content-Type: $type\n\n"; # Вывод (X)HTML-документа. print ". ";

    При отправке данных как надо учитывать ещё несколько моментов, без которых возможно появление ошибок. Так как синтаксически XHTML — это XML, элементы и в XHTML — это #PCDATA-блоки (а не #CDATA). Содержимое таких блоков необходимо помещать в специальную секцию CDATA, иначе процессор XML преобразует специальные символы в их эквиваленты ещё до обработки браузером таблицы стилей или сценария. Следующий пример показывает, как можно это сделать:

    Такой синтаксис универсален. Этот код будет корректно работать и при и при .

    Хорошим и самым простым решением будет подключение внешних файлов таблиц стилей и скриптов. В XHTML это делается так же как и в HTML:

    Сравнение HTML и XHTML

    И HTML , и XHTML — это языки для создания веб-страниц. HTML построен на основе SGML, а XHTML — на основе XML. Они похожи на две стороны одной медали. XHTML был создан из HTML с целью соответствия стандартам XML . Следовательно, XHTML является более строгим по сравнению с HTML и не позволяет отступать от правил написания кода.

    Причиной разработки XHTML послужила путаница с некоторыми тегами. Страницы, написанные на HTML , выводились в разных браузерах по-разному.

    Обновлено: 2016-05-20 06:25:46 Вадим Дворников автор материала

    Сравнительная таблица

    HTML XHTML
    Определение (из Википедии) HTML или HyperText Markup Language — это основной язык разметки для создания веб-страниц и других документов, которые могут быть просмотрены в браузере. XHTML (Extensible HyperText Markup Language) — это семейство языков XML-разметки, которые продолжают и расширяют Hypertext Markup Language (HTML), на котором написаны веб-страницы.
    Расширения файлов .html, .htm. .xhtml, .xht, .xml, .html, .htm.
    Формат использования текст/html. приложение/xhtml+xml.
    Разработан W3C и WHATWG. World Wide Web Consortium.
    Тип формата Формат документов. Язык разметки.
    Расширен из SGML. XML, HTML.
    Расшифровка Язык разметки гипертекста. Расширяемый язык разметки гипертекста.
    Приложение Приложение Standard Generalized Markup Language (SGML). Приложение XML.
    Функции Веб-страницы написаны на HTML. Расширенная версия HTML, более строгая, основанная на XML.
    Поведение Гибкие фреймворки не требуют анализа синтаксиса HTML. Ограничен правилами XML и требует их соблюдения.
    Происхождение Предложен Тимом Бернерсом-Ли в 1987 году. Рекомендация World Wide Web Consortium 2000 года.
    Версии HTML 2, HTML 3.2, HTML 4.0, HTML 5. XHTML 1, XHTML 1.1, XHTML 2, XHTML 5.

    Обзор HTML и XHTML

    HTML является основным языком разметки веб-страниц. Он создает структурированные документы, выделяя в них такие элементы, как заголовки, списки, ссылки, цитаты и т.д. Это позволяет встраивать изображения и объекты для создания интерактивных форм. HTML задается с помощью тегов в угловых скобках — например, . Также в его коде могут содержаться скрипты, написанные на JavaScript .

    XHTML представляет собой семейство языков XML , которые расширяют или продолжают версии HTML . Они не допускают пропусков любых тегов или минимизации атрибутов. XHTML требует, чтобы каждому открывающемуся тегу соответствовал закрывающийся тег в корректном порядке. Например, если в языке гипертекста допускается использование одиночного тега
    , то в XHTML в отличие от HTML нужно написать тег
    . В этом и заключается отличие.

    Функции документов HTML и XHTML

    Синтаксис HTML состоит из следующих компонентов: открывающий и закрывающий тег, атрибуты элементов ( задаваемые в тегах ), текстовый и графический контент. HTML-элемент — это все, что находится между тегами, включая сами теги.

    Документ XHTML содержит только один корневой элемент. Все элементы, включая переменные, должны быть написаны в нижнем регистре, а присвоенные значения — заключены в кавычки, закрыты и вложены. В XHTML это является обязательным требованием — в отличие от HTML . Объявление DOCTYPE XHTML определяет правила для документов, которым необходимо следовать.

    Основной синтаксис HTML допускает использование множества сокращений, чего не допускается в XHTML . Например, элементов, для которых необязательно наличие и открывающегося, и закрывающегося тега. XHTML требует, чтобы все элементы имели и открывающийся, и закрывающийся тег. В то же время XHTML вводит новые сокращения: тег XHTML может быть открыт и закрыт с помощью косой черты (
    ).

    Введение такого синтаксиса, который не используется в объявлениях SGML для HTML 4.01 , могло привести к путанице в приложениях на ранних стадиях. Чтобы решить эту проблему, нужно использовать пробел перед закрытием тега:
    .

    Спецификация XHTML и HTML

    HTML и 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

    В соответствии с рекомендациями W3C для перехода с HTML на XHTML ( документы XHTML 1.0 ) должны быть выполнены следующие шаги:

    • Включите атрибуты xml:lang и lang для элементов, устанавливающих язык;
    • Используйте синтаксис пустого элемента для элементов, указанных в HTML , как пустые;
    • Используйте дополнительный пробел в тегах пустых элементов: ;
    • Используйте закрывающиеся теги для элементов, которые могут содержать контент, но являются пустыми: ;
    • Не включайте объявление XML .

    Если следовать рекомендациям W3C по совместимости, то браузер должен уметь интерпретировать документы как HTML , так и XHTML .

    Чтобы понять, чем отличается HTML от XHTML , рассмотрим преобразование документа XHTML 1.0 в HTML 4.01 . Для этого необходимо выполнить следующие действия:

    • Язык для элемента должен быть указан с помощью атрибута lang , а не атрибута XHTML xml:lang ;
    • Удалите пространство имен XML ( xmlns=URI ). HTML не имеет средств для работы с пространствами имен;
    • Измените объявление типа документа с XHTML 1.0 на HTML 4.01 ;
    • Удалить объявление XML , если оно присутствует. Как правило, это: ;
    • Убедитесь в том, что для MIME-типа документа задано: text/html . И в HTML , и в XHTML , это задается в HTTP-заголовке Content-Type , отправляемом сервером;
    • Измените синтаксис пустого элемента XML на стиль пустого элемента HTML (с
      на
      ).

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *