• Регистриция
Этап применения умений и навыков.
Плохой специалист винит не себя, а инструменты, которыми он пользуется. Поэтому убедитесь в том, что ваше прог...
Этап финальной доводки.
Именно внимание к деталям отличает хорошую работу от великолепной. Вот несколько советов как «добавить изюм...
Фиксированный размер шрифта на Ваших веб-страничках
Вы когда нибудь задумывались о том, как выглядят ваши веб-странички на других компьютерах? Наверняка задумыв...
Этап финальной доводки.
Именно внимание к деталям отличает хорошую работу от великолепной. Вот несколько советов как «добавить изюм...
Секреты индексации сайта. Сайт может и должен работать. Пример №2
Звонит скептически настроенный знакомый и рассказывает "ужасную" историю. Сфера деятельности - бытовая элект...
При создании дизайна для Сети вам нужно принять к сведению, что контент будет меняться. О том, чтобы тратить в...
Плохой специалист винит не себя, а инструменты, которыми он пользуется. Поэтому убедитесь в том, что ваше прог...
HTML » XHTML » XML

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

В связи с тем, что XHTML является приложением XML, некоторые действия. которые совершенно правильны в HTML4 на базе SGML, должны быть изменены. Перечислим правила, которые необходимо соблюдать при переходе от HTML к XHTML:
1. Документы должны быть правильно сформированы.

Это означает, что все элементы обязаны иметь закрывающий тег(например,

) или быть написаны в специальной форме(например,
), а также должна соблюдаться корректная вложенность элементов.

Хотя перекрывание элементов не допускалось и в SGML, некоторые браузеры лояльно к этому относились и в большинстве случаев отображали именно то, что хотел показать автор документа.

ПРАВИЛЬНО: вложенные элементы

выделяем это слово.



НЕПРАВИЛЬНО: элементы перекрываются

выделяем это слово.


2. Имена элементов и атрибутов должны быть в нижнем регистре.

Документы XHTML должны использовать нижний регистр для всех имен элементов и атрибутов HTML. Это необходимо, поскольку XML чувствителен к регистру, например,
    и
      это различные теги.
      3. Правила написания значений атрибутов.

      Все значения атрибутов, даже цифровые должны быть заключены в двойные("") или одинарные('') кавычки.

      ПРАВИЛЬНО: атрибут в кавычках


НЕПРАВИЛЬНО: атрибут не в кавычках


Если значение атрибута содержит амперсанд, он должен выражаться мнемоникой ("&"). Например, если атрибут href элемента ссылается на скрипт CGI, который принимает параметры, он (атрибут) должен быть выражен так:

http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user, а не так:
http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user.

Предопределенные значения атрибутов (например атрибут type элемента input) регистрозависимы и должны быть написаны в нижнем регистре. Однако, это не касается значений атрибутов определяемых авторами документов (например значения для атрибутов id, name или class), которые также регистрозависимы, но допускают использование символов в верхнем регистре.

Следует учесть, что ведущие и ведомые пробелы в значениях атрибутов удаляются браузерами, а один или несколько последовательных пробелов между словами (а также переводы строк) преобразуются в одиночный межсловный пробел (символ пробела ASCII в западных языках).

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

ПРАВИЛЬНО: атрибут написан полностью


НЕПРАВИЛЬНО: атрибут минимизирован

4. Для непустых элементов необходимы конечные теги.

В HTML4 на базе SGML, некоторые элементы допускали отсутствие конечного тега при наличии других последующих элементов с закрывающими тегами. Такое отсутствие конечных тегов не допускается в XHTML на базе XML. Все элементы, за исключением тех, которые объявлены в определении типа документа как EMPTY, должны иметь конечный тег.

ПРАВИЛЬНО: закрытые элементы

Здесь какой-то текст.

Еще параграф с текстом.



НЕПРАВИЛЬНО: незакрытые элементы

Здесь какой-то текст.

Еще параграф с текстом.
5. Пустые элементы

Пустые элементы обязаны иметь конечный тег, или стартовый тег обязан заканчиваться />. Например,
или

.

Для совместимости с устаревшими браузерами следует писать пробел перед /> в одиночном пустом элементе.

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

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

При создании пустого объекта элемента, чья модель содержимого не EMPTY(например, пустой заголовок или параграф), не следует использовать минимизированную форму(т.е. нужно использовать

, а не

).

ПРАВИЛЬНО: пустые теги закрыты




НЕПРАВИЛЬНО: пустые теги не закрыты



6. Элементы и .

В XHTML элементы и объявлены как имеющие содержимое #PCDATA. Как результат этого, < и & будут рассматриваться как начало разметки, а мнемоники, такие как < и &, будут считаться процессором XML мнемониками символов < и & соответственно. Перенос содержимого элементов или в раздел, помеченный CDATA, позволит избежать расшифровки этих мнемоник.

// ... unescaped script content ...
//]]>

Разделы CDATA распознаются процессором XML и являются узлами в объектной модели документа(Document Object Model)

Альтернативой может быть использование внешних документов скриптов и стилей.
7. Исключения SGML.

SGML предоставлял создателям определений типа документа возможность исключать некоторые элементы как содержимое элемента. Такие запрещения (называемые "исключения") невозможны в XML.

Например, Строгое определение типа документа HTML4(Strict DTD) запрещает вложение элемента
в другой элемент на любую глубину. Хотя эти запрещения и могут отсутствовать в определении типа документа, определенные элементы не могут вкладываться.

В XHTML:
не может содержать другие элементы .
 не может содержать элементы , , , ,  или .