XHTML



Язык XHTML является более строгой и четкой версией языка разметки HTML.

В данном руководстве рассмотрены различия между HTML и XHTML, а также показано, как преобразовать Web-сайт на использование XHTML.

Введение в XHTML

Язык XHTML является более строгой и четкой версией языка HTML.

Что необходимо знать

Для понимания изложенного материала необходимо знать язык HTML и основы создания Web-страниц.

Что такое XHTML?

XHTML является сокращением от английского EXtensible HyperText Markup Language, что означает "Расширяемый язык разметки гипертекста".

XHTML предназначен для замены HTML.

XHTML почти совпадает с HTML 4.01.

XHTML является более строгой и четкой версией языка HTML.

XHTML является языком HTML, определенным как приложение XML.

XHTML одобрен в качестве Рекомендации консорциумом W3C.

XHTML рекомендован консорциумом W3C

XHTML 1.0 был одобрен как Рекомендация W3C 26 января 2000 г..

W3C определяет XHTML как последнюю версию HTML. XHTML будет постепенно заменять HTML.

Все новые браузеры поддерживают XHTML

Язык XHTML совместим с HTML 4.01.

Все новые браузеры поддерживают XHTML.

Преобразование Web-сайта на использование XHTML

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

Что содержится в данном руководстве

Данное руководство рассматривает:

  • Почему необходимо использовать XHTML

  • Синтаксис XHTML

  • Как преобразовать сайт на XHTML

  • Проверка XHTML

  • Модуляризация XHTML

Зачем нужен XHTML?

XHTML является объединением HTML и XML (EXtensible Markup Language – Расширяемого языка разметки).

XHTML состоит из всех элементов HTML 4.01, объединенных с синтаксисом XML.

Зачем нужен XHTML?

В настоящее время многие страницы в Интернет содержат "плохой" код HTML.

Следующий код HTML будет нормально работать при просмотре в браузере, даже хотя он не полностью следует правилам HTML:

</SPAN></FONT><FONT COLOR="#8b0000">Это</FONT><FONT COLOR="#8b0000"><SPAN > </SPAN></FONT><FONT COLOR="#8b0000">плохой</FONT><FONT COLOR="#8b0000"><SPAN > </SPAN></FONT><FONT COLOR="#8b0000">код</FONT><FONT COLOR="#8b0000"><SPAN > HTML

Плохой код HTML

XML является языком разметки, в котором каждый элемент должен быть правильно размечен, что приводит к "грамматически-правильным" ("well-formed") документам.

Язык XML предназначен для описания данных, а язык HTML создан для представления данных.

На современном рынке представлены различные технологии браузеров, одни браузеры предназначены для использования Интернет на компьютерах, другие для использования Интернет на мобильных телефонах и c помощью карманных коммуникаторов. Последние устройства имеют недостаточно ресурсов или мощности для интерпретации "плохого" языка разметки.

Объединяя сильные стороны HTML и XML, мы получаем язык разметки, который будет полезен сегодня и в будущем -- XHTML.

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

--------------------------------------------------------------------------------------------------------------------

Различия между XHTML и HTML

XHTML можно начать использовать просто строго следуя правилам HTML.

Как переходить к использованию XHTML

XHTML не очень существенно отличается от стандарта HTML 4.01.

Поэтому хорошим началом будет приведение кода к стандарту 4.01.

Кроме того, необходимо писать код HTML символами нижнего регистра, и никогда не пропускать завершающие теги (такие как

).

Вот собственно и все. Удачного кодирования!

Наиболее важные различия

Элементы XHTML должны быть правильно вложены

Элементы XHTML всегда должны быть замкнутыми

Элементы XHTML должны записываться в нижнем регистре

Документы XHTML должны иметь один корневой элемент

Элементы XHTML должны быть правильно вложены

В HTML некоторые элементы могут вкладываться друг в друга некорректно, например как в случае: Этот текст жирный и наклонный

В XHTML все элементы должны правильно вкладываться друг в друга, например: Этот текст жирный и наклонный

Примечание: Достаточно часто при создании вложенных списков забывают о том, что внутренний список должен находится между тегами

  • и
  • .

    Неправильно:

    • Кофе
    • Чай

      • Черный чай
      • Зеленый чай

    • Молоко

    Правильно:

    • Кофе
    • Чай

      • Черный чай
      • Зеленый чай

    • Молоко

    Обратите внимание, что в примере "правильного" кода вставлен тег после тега .

    Элементы XHTML всегда должны быть замкнутыми

    Непустые элементы должны иметь замыкающий тег.

    Неправильно:

    Это -- параграф

    Это -- еще один параграф

    Правильно:

    Это -- параграф

    Это -- еще один параграф

    Пустые элементы должны быть замкнуты

    Пустые элементы должны иметь замыкающий тег или начальный тег должен заканчиваться символами />.

    Неправильно:

    Разрыв строки:

    Горизонтальная линия:


    Изображение: Веселое лицо

    Правильно:

    Разрыв строки:

    Горизонтальная линия:


    Изображение: Веселое лицо

    Элементы XHTML должны записываться в нижнем регистре

    Спецификация XHTML определяет, что имена и атрибуты тегов должны записываться в нижнем регистре.

    Неправильно:

    Параграф

    Правильно:

    Параграф

    Документы XHTML должны иметь один корневой элемент

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

    ...

    ...



    Синтаксис XHTML

    При записи документа XHTML требуется использовать четкий синтаксис HTML.

    Дополнительные правила синтаксиса XHTML

    • Имена атрибутов должны записываться в нижнем регистре

    • Значения атрибутов должны заключаться в кавычки

    • Минимизация атрибутов запрещена

    • Атрибут id заменяет атрибут name

    • DTD XHTML определяет обязательные элементы

    Имена атрибутов должны записываться в нижнем регистре

    Неправильно:

    Правильно:

    Значения атрибутов должны заключаться в кавычки

    Неправильно:

    Правильно:

    Минимизация атрибутов запрещена

    Неправильно:

    Правильно:

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

    HTML

    XHTML

    compact

    compact="compact"

    checked

    declare

    checked="checked"

    declare="declare"

    readonly

    readonly="readonly"

    disabled

    disabled="disabled"

    selected

    selected="selected"

    defer

    defer="defer"

    ismap

    ismap="ismap"

    nohref

    noREL="nofollow" target="_blank" HREF="https://doc4web.ru/go.html?href=nohref"

    noshade

    noshade="noshade"

    nowrap

    nowrap="nowrap"

    multiple

    multiple="multiple"

    noresize

    noresize="noresize"

    Атрибут id заменяет атрибут name

    HTML 4.01 определяет атрибут name для элементов a, applet, frame, iframe, img, и map. В XHTML атрибут name исключен. Вместо него используется атрибут id.

    Неправильно:

    Правильно:

    Примечание: Для взаимодействия со старыми браузерами в течение некоторого времени необходимо будет использовать оба атрибута name и id, с одинаковыми значениями атрибутов, например: .

    Важное замечание о совместимости

    Для совместимости XHTML с современными браузерами, необходимо добавить дополнительный пробел перед символом "/".

    Атрибут lang

    Атрибут lang применим почти к любому элементу XHTML. Он определяет язык содержимого внутри элемента.

    Если в каком-то элементе используется атрибут lang, то необходимо добавить атрибут xml:lang, например: Bonjour, madam!.

    Обязательные элементы XHTML

    Все документы XHTML должны иметь объявление DOCTYPE. Также должны присутствовать элементы html, head и body, а внутри элемента head должен присутствовать элемент title.

    Шаблон минимального документа XHTML имеет следующий вид:

    Здесь задается заголовок

    Примечание: Объявление DOCTYPE не является частью самого документа XHTML. Это объявление не является элементом XHTML и не должно иметь закрывающий тег.

    Примечание: Атрибут xmlns в теге является в XHTML обязательным. Однако программа проверки (валидатор) на сайте w3.org не высказывает претензий, когда этот атрибут отсутствует в документе XHTML. Это обусловлено тем, что атрибут "xmlns=http://www.w3.org/1999/xhtml" имеет фиксированное значение и будет добавлен в тег , даже если он не был включен.

    В следующем разделе представлена дополнительная информация об определении типа документа XHTML.

    ---------------------------------------------------------------------------------------------------------------------

    DTD XHTML

    Стандарт XHTML определяет три определения типа документа (Document Type Definitions – DTD).

    Наиболее распространенным является XHTML Transitional (Переходный).

    Элемент является обязательным

    Документ XHTML состоит из трех основных частей:

    Тип документа DOCTYPE

    Заголовок (Head)

    Тело (Body)

    Базовая структура документа имеет следующий вид:

    ...

    ...

    Объявление DOCTYPE всегда должно присутствовать в первой строке документа XHTML.

    Пример XHTML

    Это простой (минимальный) документ XHTML:

    PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

    </SPAN></FONT><FONT COLOR="#8b0000">простой</FONT><FONT COLOR="#8b0000"><SPAN > </SPAN></FONT><FONT COLOR="#8b0000">документ</FONT><FONT COLOR="#8b0000"><SPAN >

    простой параграф

    Объявление DOCTYPE определяет тип документа:

    PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

    Оставшаяся часть документа выглядит как HTML:

    </SPAN></FONT><FONT COLOR="#8b0000">простой</FONT><FONT COLOR="#8b0000"><SPAN > </SPAN></FONT><FONT COLOR="#8b0000">документ</FONT><FONT COLOR="#8b0000"><SPAN >

    простой параграф

    Определения трех типов документов

    • DTD определяет синтаксис Web-страницы на SGML.

    • DTD используется приложениями SGML, такими как HTML, для определения правил, которые применяют при разметке документов определенного типа, включая множество объявлений элементов и сущностей.

    • XHTML задан в определении типа документа SGML или 'DTD'.

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

    В настоящее время имеется три типа документов XHTML:

    • STRICT

    • TRANSITIONAL

    • FRAMESET

    XHTML 1.0 определяет три типа документов XML, которые соответствуют трем DTD: Strict, Transitional, и Frameset.

    XHTML 1.0 Strict

    PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

    Это определение DTD используется, когда требуется получить действительно четкую разметку, не имеющую в представлении никакого беспорядка. Оно используется вместе с каскадными таблицами стилей.

    XHTML 1.0 Transitional

    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    Используйте это определение, когда надо воспользоваться средствами представления HTML, и когда необходимо обеспечить поддержку для браузеров, которые не понимают каскадные таблицы стилей.

    XHTML 1.0 Frameset

    PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"

    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

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

    Как использовать XHTML

    Преобразование сайта на XHTML

    Чтобы преобразовать Web-сайт с языка HTML на XHTML, необходимо знать правила синтаксиса XHTML, которые были рассмотрены выше. Затем необходимо выполнить следующие действия (в указанном порядке):

    Добавить определение DOCTYPE

    В качестве первой строки каждой страницы добавляют следующее объявление DOCTYPE:

    "-//W3C//DTD XHTML 1.0 Transitional//EN"

    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    Лучше использовать сначала переходное определение DTD (Transitional). Можно выбрать и строгое определение DTD (Strict), но оно немного слишком "строгое" на начальном этапе, и ему труднее соответствовать.

    Замечание о DOCTYPE

    Web-cтраницы должны иметь объявление DOCTYPE, если желательно, чтобы они были определены как правильные согласно XHTML.

    Надо помнить, однако, что более новые браузеры (такие как Internet Explorer 6) могут обрабатывать документ по-разному, в зависимости от объявления . Если браузер читает документ с DOCTYPE, то он может интерпретировать документ как "правильный". Плохо сформированный XHTML может выводиться иначе, чем при отсутствии DOCTYPE.

    Имена тегов и атрибутов записать в нижнем регистре

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

    Все атрибуты заключают в кавычки

    Так как рекомендация W3C для XTML 1.0 говорит, что значения всех атрибутов должны быть заключены в кавычки, то необходимо проверить все Web-страницы, чтобы значения всех атрибутов были правильно заключены в кавычки. Это трудоемкая работа, поэтому рекомендуется в будущем никогда не забывать использовать кавычки для значений атрибутов.

    Пустые теги:
    ,
    и

    В XHTML пустые теги не разрешены. Теги


    и
    должны быть заменены соответственно на
    и
    .

    Это создает проблему с браузером Netscape, который неправильно интерпретирует тег
    . Но к счастью, по неизвестной причине, замена его на
    прекрасно работает. В этом случае также необходимо выполнить глобальный поиск и замену соответствующих тегов.

    Некоторые другие теги (такие как тег ) страдают от такой же проблемы. В данном случае можно не использовать тег замыкания , а добавить /> в конце тега.

    Проверка (валидация) Web-сайта

    После выполнения всех преобразований все имеющиеся страницы проверяются согласно официальному DTD W3C с помощью следующей ссылки на XHTML Validator (http://validator.w3.org/check/referer). Возможные не выявленные на начальном этапе ошибки надо будет отредактировать вручную. Наиболее распространенной ошибкой бывает отсутствие в списках тегов замыкающего .

    Имеются ли какие-либо специальные инструментальные средства для преобразования? Да, можно использовать утилиту TIDY.

    Бесплатная утилита Дейва Рагетта HTML TIDY (http://www.w3.org/People/Raggett/tidy/) предназначена для проверки кода HTML. Она также отлично справляется с трудночитаемыми разметками документов, созданными специальными редакторами HTML и инструментальными средствами конвертации, и может помочь определить места кода, требующие дополнительного внимания, чтобы сделать Web-страницы более доступными для людей с физическими недостатками.

    Проверка XHTML

    Документ XHTML проверяется согласно Определению типа документа.

    Проверка XHTML в соответствии с DTD

    Документ XHTML проверяют на соответствие определению типа документа (DTD). Прежде чем можно будет проверить файл XHTML, необходимо добавить в качестве первой строки правильный DTD.

    Strict DTD содержит элементы и атрибуты, которые не были исключены и не связаны с фреймами:

    !DOCTYPE html PUBLIC

    "-//W3C//DTD XHTML 1.0 Strict//EN"

    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"


    Transitional DTD содержит все из Strict DTD плюс исключенные элементы и атрибуты:


    !DOCTYPE html PUBLIC

    "-//W3C//DTD XHTML 1.0 Transitional//EN"

    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"


    Frameset DTD содержит все из Transitional DTD плюс фреймы:


    !DOCTYPE html PUBLIC

    "-//W3C//DTD XHTML 1.0 Frameset//EN"

    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"

    Простой документ XHTML имеет следующий вид:

    PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

    </SPAN></FONT><FONT COLOR="#8b0000">простой</FONT><FONT COLOR="#8b0000"><SPAN > </SPAN></FONT><FONT COLOR="#8b0000">документ</FONT><FONT COLOR="#8b0000"><SPAN >

    простой параграф

    Модуляризация XHTML

    Модель модуляризации XHTML определяет модули XHTML.

    Зачем нужна модуляризация XHTML?

    XHTML является простым, но большим языком. XHTML содержит большинство функций, которые могут понадобиться Web-разработчику.

    Для некоторых целей XHTML является слишком большим и сложным, а для других целей он слишком прост.

    Разделяя XHTML на модули, консорциум W3C создал небольшие и строго определенные множества элементов XHTML, которые можно использовать отдельно для простых устройств, а также в соединении с другими стандартами XML в больших и более сложных приложениях.

    Используя модульность XHTML, разработчики приложений могут:

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

    • Добавлять в XHTML расширения, используя XML, и не нарушая стандарт XHTML.

    • Упрощать XHTML для таких устройств, как карманные компьютеры-коммуникаторы, мобильные телефоны, ТВ устройства, и устройства бытовой техники.

    • Расширять XHTML для сложных приложений, добавляя новые функции XML (такие как MathML, SVG, Voice and Multimedia).

    • Определять профили XHTML, такие как XHTML Basic (подмножество XHTML для мобильных устройств).

    Модули XHTML

    Консорциум W3C разделил определение XHTML на 28 модулей:

    Имя модуля

    Описание

    модуль Applet

    Определяет исключенный элемент applet

    модуль Base

    Определяет элемент base

    модуль Basic Forms

    Определяет базовые элементы форм

    модуль Basic Tables

    Определяет базовые элементы таблиц

    модуль Bi-directional Text

    Определяет элемент bdo

    модуль Client Image Map

    Определяет элементы карт-изображений на стороне браузера

    модуль Edit

    Определяет элементы редактирования del и ins

    модуль Forms

    Определяет все элементы, используемые в формах

    модуль Frames

    Определяет элементы, связанные с фреймами

    модуль Hypertext

    Определяет элемент a

    модуль Iframe

    Определяет элемент iframe

    модуль Image

    Определяет элемент img

    модуль Intrinsic Events

    Определяет атрибуты событий, такие как onblur и onchange

    модуль Legacy

    Определяет исключенные элементы и атрибуты

    модуль Link

    Определяет элемент link

    модуль List

    Определяет элементы списка li, ul, dd, dt, и dl

    модуль Metainformation

    Определяет элемент meta

    модуль Name Identification

    Определяет исключенный атрибут name

    модуль Object

    Определяет элементы object и param

    модуль Presentation

    Определяет элементы представления, такие как b и i

    модуль Scripting

    Определяет элементы script и noscript

    модуль Server Image Map

    Определяет элементы карт-изображений на сервере

    модуль Structure

    Определяет элементы html, head, title и body

    модуль Style Attribute

    Определяет атрибут style

    модуль Style Sheet

    Определяет элемент style

    модуль Tables

    Определяет элементы, используемые в таблицах

    модуль Target

    Определяет атрибут target

    модуль Text

    Определяет элементы контейнера текста, такие как p и h1

    Исключенные элементы не должны использоваться в XHTML.

    Стандартные атрибуты XHTML

    Теги XHTML могут иметь атрибуты. Атрибуты каждого тега перечислены в описании тега. Здесь представлены базовые атрибуты и атрибуты языка, которые являются стандартными для всех тегов (с небольшими исключениями).

    Базовые атрибуты

    Недействительны в элементах base, head, html, meta, param, script, style и title.

    Атрибут

    Значение

    Описание

    class

    правило_класса или правило_стиля

    Класс элемента

    id

    имя_id

    Уникальный id элемента

    style

    определение_стиля

    Встроенное определение стиля

    title

    текст_подсказки

    Текст для вывода подсказки

    Атрибуты языка

    Недействительны в элементах base, br, frame, frameset, hr, iframe, param, и script.

    Атрибут

    Значение

    Описание

    dir

    ltr | rtl

    Задает направление текста

    lang

    код_языка

    Задает код языка

    Атрибуты клавиатуры

    Атрибут

    Значение

    Описание

    accesskey

    символ

    Задает клавиатурное сокращение для доступа к элементу

    tabindex

    число

    Задает порядок элемента при переходе по клавише табуляции

    Атрибуты событий XHTML

    Новым в HTML 4.0 была возможность для событий HTML запускать в браузере действия, такие как запуск сценария JavaScript, когда пользователь щелкал на элементе HTML. Ниже представлен список атрибутов, которые можно вставлять в теги HTML для определения действий событий.

    Более подробно об использовании этих событий в программировании можно узнать в руководстве по JavaScript и руководстве по DHTML.

    События окна

    Действительны только в элементах body и frameset

    Атрибут

    Значение

    Описание

    onload

    сценарий

    Сценарий, который выполняется при загрузке документа

    onunload

    сценарий

    Сценарий, который выполняется при выгрузке документа

    События элементов формы

    Действительны только в элементах форм.

    Атрибут

    Значение

    Описание

    onchange

    сценарий

    Сценарий, который выполняется при изменении элемента

    onsubmit

    сценарий

    Сценарий, который выполняется при отправке формы

    onreset

    сценарий

    Сценарий, который выполняется при сбросе формы

    onselect

    сценарий

    Сценарий, который выполняется при выборе элемента

    onblur

    сценарий

    Сценарий, который выполняется, когда элемент теряет фокус

    onfocus

    сценарий

    Сценарий, который выполняется, когда элемент получает фокус

    События клавиатуры

    Недействительны в элементах base, bdo, br, frame, frameset, head, html, iframe, meta, param, script, style и title.

    Атрибут

    Значение

    Описание

    onkeydown

    сценарий

    Действие после нажатия клавиши

    onkeypress

    сценарий

    Действие после нажатия и отпускания клавиши

    onkeyup

    сценарий

    Действие после отпускания клавиши

    События мыши

    Недействительны в элементах base, bdo, br, frame, frameset, head, html, iframe, meta, param, script, style и title.

    Атрибут

    Значение

    Описание

    onclick

    сценарий

    Что делать при щелчке мыши

    ondblclick

    сценарий

    Что делать при двойном щелчке мыши

    onmousedown

    сценарий

    Что делать при нажатии кнопки мыши

    onmousemove

    сценарий

    Что делать при перемещении указателя мыши

    onmouseover

    сценарий

    Что делать при перемещении указателя мыши над элементом

    onmouseout

    сценарий

    Что делать при смещении указателя мыши с элемента

    onmouseup

    сценарий

    Что делать при отпукании нажатой кнопки мыши


    Нравится материал? Поддержи автора!

    Ещё документы из категории информатика:

    X Код для использования на сайте:
    Ширина блока px

    Скопируйте этот код и вставьте себе на сайт

    X

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

    После чего кнопка «СКАЧАТЬ» станет доступной!

    Кнопочки находятся чуть ниже. Спасибо!

    Кнопки:

    Скачать документ