закрыть ВНИМАНИЕ! 13 ФЕВРАЛЯ СОСТОИТСЯ НАБОР НА КУРСЫ МЕДИТАЦИИ МЕДИТАЦИЯ - основное средство развития психики и самопознания. Познать метод, дающий внутреннюю гармонию и раскрывающий внутренние глубины предлагают данные курсы.

Подробности на странице: http://untaware.blogspot.ru/p/0021_30.html

XHTML

XHTML (англ. Extensible Hypertext Markup Language — Расширяемый язык разметки гипертекста) — язык разметки веб-страниц, по возможностям сопоставимый с HTML, созданный на базе XML. Как и HTML, XHTML соответствует спецификации SGML, поскольку XML является её подмножеством. Вариант XHTML 1.1 одобрен в качестве Рекомендации Консорциума Всемирной паутины (W3C) 31 мая 2001 года.

Стандарт XHTML построен не как самодостаточное описание языка, а как перечень различий между HTML 4.01 и XHTML.

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

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

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

1. Правильная вложенность тегов.

Это означает, что все элементы обязаны иметь закрывающий тег(например, <p></p>) или быть написаны в специальной форме(например, <br />), а также должна соблюдаться корректная вложенность элементов.

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

ПРАВИЛЬНО: вложенные элементы
<p>выделяем это <em>слово</em>.</p>

НЕПРАВИЛЬНО: элементы перекрываются
<p>выделяем это <em>слово.</p></em>

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

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

3. Правила написания значений атрибутов.

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

ПРАВИЛЬНО: атрибут в кавычках
<td colspan="8">

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

Если значение атрибута содержит амперсанд, он должен выражаться мнемоникой ("&amp;"). Например, если атрибут href элемента <a> ссылается на скрипт CGI, который принимает параметры, он (атрибут) должен быть выражен так:
http://my.site.dom/cgi-bin/myscript.pl?class=guest&amp;name=user, а не так:
http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user
.

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

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

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

ПРАВИЛЬНО: атрибут написан полностью
<dl compact="compact">

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

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

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

ПРАВИЛЬНО: закрытые элементы
<p>Здесь какой-то текст.</p><p>Еще параграф с текстом.</p>

НЕПРАВИЛЬНО: незакрытые элементы
<p>Здесь какой-то текст.<p>Еще параграф с текстом.

5. Пустые элементы

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

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

Следует использовать минимизированный синтаксис для тегов пустых элементов, например, <br /> так как альтернативный синтаксис <br></br>, допускаемый XML, дает непредсказуемые результаты во многих существующих браузерах.

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

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

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

6. Элементы <script> и <style>.

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

<script type="text/javascript">//<![CDATA[
... unescaped script content ...
//]]></script>

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

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

7. Исключения SGML.

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

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

В XHTML:
<a> не может содержать другие элементы <a>.
<pre> не может содержать элементы <img>, <object>, <big>, <small>, <sub> или <sup>.
<button> не может содержать элементы <input>, <select>, <textarea>, <label>, <button>, <form>, <fieldset>, <iframe> или <isindex>.
<label> не может содержать другие элементы <label>.
<form> не может содержать другие элементы <form>.

8. Элементы с атрибутами "id" и "name"

HTML 4 определил атрибут name для элементов a, applet, form, frame, iframe, img и map, а также ввёл атрибут id. Оба эти атрибута созданы для использования в качестве идентификаторов фрагмента.

В XML идентификаторы фрагмента имеют тип ID, и в элементе может быть только один атрибут типа ID. Таким образом, в XHTML 1.0 атрибут id определён как атрибут типа ID. Чтобы быть уверенным, что документы XHTML 1.0 являются правильно структурированными документами XML, документы XHTML 1.0 обязаны использовать атрибут id для определения идентификаторов фрагмента, и даже в тех элементах, которые исторически имели атрибут name.

Также следует помнить, что значение атрибута id в пределах документа должно быть уникальным.

В XHTML 1.1 для элементов a и map атрибут name удален, вместо него следует использовать атрибут id.

9. Двойные тире в комментариях

В комментариях двойные тире "--" могут обозначать только начало и конец комментария.

НЕПРАВИЛЬНО:
<!-- использовать разделитель, написанный ниже -- нельзя и этот комментарий -- неверен -->
<!--------------------------------->

ПРАВИЛЬНО:
<!-- использовать разделитель, написанный ниже - - можно и этот комментарий - - верен -->
<!--==== - - - - ====-->

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

10. Символы < и & в тексте документа

Символы < и & в тексте документа должны быть заменены соответствующими последовательностями &lt; и &amp;.

Нет необходимости, но желательно заменять также и > на &gt;.

11. Вот образец минимального документа XHTML:

<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
<head>
<title>
XHTML</title>
</head>
<body>
<p>
Подробности о разметке на сайте W3C: <a href="http://w3c.org/MarkUp/"> http://w3c.org/MarkUp/ </a>.</p>
</body>
</html>

Корневым элементом документа должен (обязан) быть <html>.

Корневой элемент документа обязан обозначить пространство имён XHTML путём использования атрибута xmlns[XMLNAMES]. Пространство имён XHTML определено в http://www.w3.org/1999/xhtml.

В документе обязано присутствовать объявление DOCTYPE, предшествующее корневому элементу(<html>).
Публичный идентификатор, включённый в объявление DOCTYPE, обязан быть ссылкой на одно из определений типа документа. O различных определениях DOCTYPE и их влиянии на отображение (X)HTML документа в браузерах можно прочитать в статье "Различное отображение HTML документов в браузере зависит от объявленного Doctype".

Для XHTML страниц рекомендуется задавать MIME-тип — application/xhtml+xml, но это не является обязательным, более того — браузер Internet Explorer 8 и младшие версии, не смогут обрабатывать страницу, поэтому с XHTML 1.0 традиционно используется MIME-тип для HTML — text/html.

Также стандарт рекомендует указание <?xml version="1.0" encoding="utf-8"?> перед DTD, но это не обязательно, более того — браузер Internet Explorer воспринимает такое указание (как и любой другой текст перед <!DOCTYPE>), как признак того, что данную страницу необходимо отображать в режиме обратной совместимости, а не согласно стандарту. Существует три типа документов XHTML: strict, transitional и frameset. Наиболее употребительной и универсальной из версий XHTML является переходная (англ. transitional), поскольку она позволяет использовать iframe (включение содержимого одной веб-страницы в другую) и атрибут target у ссылок (для указания того, например, что ссылке необходимо открываться в новом окне). Фреймовая версия (англ. frameset) представляет собой расширенный вариант transitional, добавляя к нему, как следует из названия, возможность установки frameset вместо body. DTD строгой версии XHTML (англ. strict) не содержит многих тегов и атрибутов, описанных в DTD transitional, и признанных устаревшими.

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

XHTML 1.0 Strict

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

XHTML 1.0 Transitional

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

XHTML 1.0 Frameset

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

XHTML 1.0 Mobile

<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

XHTML 1.1

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">


Самыми распространёнными ошибками в XHTML-разметке являются:

 

XHTML1.0, элементы по DTD

DOCTYPE
Элемент Strict Transitional Frameset
<!-- --> да да да
<!DOCTYPE> да да да
<a> да да да
<abbr> да да да
<acronym> да да да
<address> да да да
<applet> нет да да
<area /> да да да
<b> да да да
<base /> да да да
<basefont> нет да да
<bdo> да да да
<big> да да да
<blockquote> да да да
<body> да да нет
<br /> да да да
<button> да да да
<caption> да да да
<center> нет да да
<cite> да да да
<code> да да да
<col> да да да
<colgroup> да да да
<dd> да да да
<del> да да да
<dfn> да да да
<dir> нет да да
<div> да да да
<dl> да да да
<dt> да да да
<em> да да да
<fieldset> да да да
<font> нет да да
<form> да да да
<frame> нет нет да
<frameset> нет нет да
<h1> ... <h6> да да да
<head> да да да
<hr /> да да да
<html> да да да
<i> да да да
<iframe> нет да да
<img /> да да да
<input> да да да
<ins> да да да
<kbd> да да да
<label> да да да
<legend> да да да
<li> да да да
<link> да да да
<map> да да да
<menu> нет да да
<meta> да да да
<noframes> нет нет да
<noscript> да да да
<object> да да да
<ol> да да да
<optgroup> да да да
<option> да да да
<p> да да да
<param> да да да
<pre> да да да
<q> да да да
<s> нет да да
<samp> да да да
<script> да да да
<select> да да да
<small> да да да
<span> да да да
<strike> нет да да
<strong> да да да
<style> да да да
<sub> да да да
<sup> да да да
<table> да да да
<tbody> да да да
<td> да да да
<textarea> да да да
<tfoot> да да да
<th> да да да
<thead> да да да
<title> да да да
<tr> да да да
<tt> да да да
<u> нет да да
<ul> да да да
<var> да да да

 

 

XHTML1.0, атрибуты элементов по DTD

    DOCTYPE
Атрибут Элемент Strict Transitional Frameset
abbr td th да да да
acronym td th да да да
accept-charset form да да да
accept form input да да да
accesskey a area button input label legend textarea да да да
action form да да да
align applets да да
align iframe да
align caption div h1-h6 hr img input legend p table нет да да
align col colgroup tbody td tfoot th thead tr да да да
alink body нет да да
alt applet да да
alt area img input да да да
archive applet да да
archive object да да да
axis td th да да да
background body нет да да
bgcolor table tr td th body нет да да
border img нет да да
border table да да да
cellpadding table да да да
cellspacing table да да да
char col colgroup tbody td tfoot th thead tr да да да
charoff col colgroup tbody td tfoot th thead tr да да да
charset a link script да да да
checked input да да да
cite blockquote q del ins да да да
class все элементы, кроме: base basefont head html meta param script style title да да да
classid object да да да
code applet да да
codebase applet да да
codebase object да да да
codetype object да да да
color basefont font да да
cols frameset да
cols textarea да да да
colspan td th да да да
compact dir dl menu ol ul да да
content meta да да да
coords a area да да да
data object да да да
datetime del ins да да да
declare object да да да
defer script да да да
dir apple basefont да да
dir frame frameset iframe да
dir все элементы, кроме: base br param script да да да
disabled button input optgroup option select textarea да да да
enctype form да да да
face basefont font да да
for label да да да
frame table да да да
frameborder frame iframe да
headers td th да да да
height applet да да
height iframe да
height td th нет да да
height img да да да
href a area link base да да да
hreflang a link да да да
hspace applet да да
hspace img нет да да
http-equiv meta да да да
id все элементы, кроме: base head html meta script style title да да да
ismap input нет да да
ismap img да да да
label option optgroup да да да
lang applet basefont да да
lang frame frameset iframe да
lang все элементы, кроме: base br param script да да да
link body нет да да
longdesc frame iframe да
longdesc img да да да
marginheight frame iframe да
marginwidth frame iframe да
maxlength input да да да
media link style да да да
method form да да да
multiple select да да да
name applet да да
name frame iframe да
name a button input map meta param select textarea да да да
nohref area да да да
noresize frame да
noshade hr нет да да
nowrap td th нет да да
object applet да да
onblur a area button input label select textarea да да да
onchange input select textarea да да да
onclick applet basefont font да да
onclick frame frameset iframe да
onclick все элементы, кроме: base bdo br head html meta param script style title да да да
ondblclick applet basefont font да да
ondblclick frame frameset iframe да
ondblclick все элементы, кроме: base bdo br head html meta param script style title да да да
onfocus a area button input label select textarea да да да
onkeydown applet basefont font да да
onkeydown frame frameset iframe да
onkeydown все элементы, кроме: base bdo br head html meta param script style title да да да
onkeypress applet basefont font да да
onkeypress frame frameset iframe да
onkeypress все элементы, кроме: base bdo br head html meta param script style title да да да
onkeyup applet basefont font да да
onkeyup frame frameset iframe да
onkeyup все элементы, кроме: base bdo br head html meta param script style title да да да
onload frameset да
onload body да да да
onmousedown applet basefont font да да
onmousedown frame frameset iframe да
onmousedown все элементы, кроме: base bdo br head html meta param script style title да да да
onmousemove applet basefont font да да
onmouseout frame frameset iframe да
onmouseout все элементы, кроме: base bdo br head html meta param script style title да да да
onmouseover applet basefont font да да
onmouseover frame frameset iframe да
onmouseover все элементы, кроме: base bdo br head html meta param script style title да да да
onmouseup applet basefont font да да
onmouseup frame frameset iframe да
onmouseup все элементы, кроме: base bdo br head html meta param script style title да да да
onreset form да да да
onselect input textarea да да да
onsubmit form да да да
onunload frameset да
onunload body да да да
profile head да да да
readonly input textarea да да да
rel a link да да да
rev a link да да да
rows frameset да
rows textarea да да да
rowspan td th да да да
rules table да да да
scheme meta да да да
scope td th да да да
scrolling frame iframe да
selected option да да да
shape a area да да да
size basefont font да да
size hr нет да да
size input select да да да
span col colgroup да да да
src frame iframe да
src img input script да да да
standby object да да да
start ol нет да да
style basefont да да
style все элементы, кроме: base head html meta param script style title да да да
summary table да да да
tabindex a area button input select textarea да да да
target a base link area form нет да да
text body нет да да
title basefont да да
title все элементы, кроме: base head html meta param script title да да да
type ol ul нет да да
type a button form input link object param script style да да да
usemap img input да да да
valign col colgroup tbody td tfoot th thead tr да да да
value button input option param да да да
valuetype param да да да
version html нет да да
vlink body нет да да
vspace applet да да
vspace img нет да да
width applet да да
width iframe да
width hr td th нет да да
width col colgroup img table да да да