Любой XHTML-файл состоит из четырех разделов — <!DOCTYPE>, контейнера <html>, заголовка (<head>) и тела документа (<body>). Последние два элемента перекочевали из HTML и ничем не отличаются от своего родоначальника (пример 2.1).
Пример 2.1. Простейший XHTML-документ
<!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"> <head> <!-- Этот раздел предназначен для заголовка страницы и технической информации. --> </head> <body> <!-- А здесь надо размещать все, что хочется увидеть на странице. --> </body> </html>
Элемент <!DOCTYPE> сообщает браузеру о типе текущего документа и как его интерпретировать. Различают три типа документа по спецификации XHTML 1.0:
Элемент <!DOCTYPE> хотя и обязателен, но не является непосредственной частью XHTML-документа, поэтому для него закрывающего тега не требуется.
Используется в том случае, если в документе идет четкое разделение оформления и содержания. При этом код веб-страницы содержит только теги разметки, а сам вид элементов задается через стили (пример 2.2).
Пример 2.2. Документ со строгой разметкой
<!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"> <head> <title>Пример строгого документа</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <p>...</p> </body> </html>
Обычно применяется, когда правило разделения оформления и содержания выполняется не в полной мере. В этом случае допускается в коде документа использовать теги физического проектирования (например, тег <tt>) и лишь частично стили. В примере 2.3 показан вид тега <!DOCTYPE> для подобных документов.
Пример 2.3. «Переходный» документ
<!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"> <head> <title>Пример мягкого документа</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <p>...</p> </body> </html>
Применяется, когда окно браузера делится на два или более фрейма (пример 2.4).
Пример 2.4. Документ с фреймами
<!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"> <head> <title>Фреймы</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <frameset cols="100,*"> <frame src="menu.html" name="menu" /> <frame src="content.html" name="content" /> </frameset> </html>
Тег <html> выступает главным контейнером, в котором хранятся все остальные элементы, и в коде он должен идти сразу же после <!DOCTYPE>. В <html> требуется указывать обязательный атрибут xmlns со значением http://www.w3.org/1999/xhtml. Он определяет пространство имен — так называется набор имен всех элементов и атрибутов, чтобы обеспечить их уникальность в пределах XHTML-документа.
В HTML кодировка документа задается с помощью тега <meta> расположенного внутри контейнера <head>. В XHTML же кодировка может задаваться двумя путями: аналогично HTML и с помощью команды <?xml version=»1.0″ encoding=»UTF-8″?>, она должна располагаться в первой строке кода, перед <!DOCTYPE>. В данном случае UTF-8 обозначает кодировку текущего документа. В примере 2.5 показано, как устанавливать кодировку подобным способом.
Пример 2.5. Кодировка документа
<?xml version="1.0" encoding="windows-1251"?> <!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"> <head> <title>Кодировка</title> </head> <body> <p>Текст на русском языке в стандартной кодировке Windows.</p> </body> </html>
В данном примере кодировка установлена как windows-1251.
В браузере Internet Explorer до 6 версии включительно команда <!DOCTYPE> должна обязательно стоять в первой строке кода, иначе браузер переходит в режим совместимости (quirk mode) и веб-страница может отображаться весьма причудливым образом. Поэтому для универсальности кодировку лучше указывать с помощью метатегов, как и в HTML.
Сайт