(с примерами)
Обязательная структура документа
Начнем с самого простого HTML документа, содержащего только простой текст Hello world. В HTML файле содержимому обязательно должен предшествовать раздел HEAD, который минимально может состоять из двух конструкций. Тогда код HTML можно представить так:
Пример hello.html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <TITLE>Hello</TITLE> Hello world
На самом же деле, в точности, этот документ имеет следующую структуру:
Пример hello2.html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <HTML> <HEAD> <TITLE>Hello</TITLE> </HEAD> <BODY> Hello world </BODY> </HTML>
То есть, за исключением первой строки, весь файл есть HTML элемент который содержит HEAD элемент, (включающий TITLE элемент) и BODY элемент, с простым текстом в качестве содержимого.
Таким образом, при отсутствии тегов HTML, HEAD, и TITLE броузер сам вставит их в нужные места. Поэтому Ваш документ всегда будет содержать HEAD и BODY.
Рекомендуемая структура документа
В дополнение к обязательной структуре настоятельно рекомендуется вставлять различные структурные детали. Существуют специальные рекомендации на различных сайтах, и Вы должны внимательно изучить соответствующие документы.
Здесь же мы просто подчеркнем, что каждый HTML документ должен содержать основную информацию о его происхождении. Частные рекомендации могут уточнить в деталях форму представления этой информации.
Если Вы стремитесь к тому, чтобы люди отыскали Ваш документ по соответствующим связям, важность предоставления информации о его происхождении становится очевидной. Когда пользователь найдет Ваш документ с помощью, например, поискового ресурса AltaVista, он, вероятнее всего, захочет узнать, к какому виду относится документ. Поэтому каждый файл HTML должен предоставлять самую основную информацию (или связи к информации) о его происхождении и природе. Например, в собрании книгоподобных документов, разделенных на малые файлы, каждый файл должен содержать, по крайней мере, связь к "первой странице" "книги" (Home page).
О происхождении документа должна быть представлена, по крайней мере, следующая информация:
- Автор документа, имеющий уникальное имя. При этом должна быть задана связь с домашней страницей автора. Если у документа несколько авторов, определите их всех, а также роль каждого из них; например, ведущего автора, редактора, действующего спонсора, а также лиц, формально отвечающих за документ.
- Дата создания документа или его последней модификации, или и та и другая. Представляемая дата должна быть понятна во всем мире; в частности, название месяца лучше писать словом, а не цифрой.
- Контекст документа и его статус, например: часть официальной документации компании об одном из ее продуктов, или часть личной информации о хобби автора, или что-то другое.
- Адрес (URL) документа. Такая информация зачастую чрезмерна, однако она может быть очень полезной, когда кому-то нужна копия именно того документа, который он нашел. Лучше не полагаться на броузер (и пользователя), добавляющих такую информацию, когда сделана копия документа.
Следующий пример представляет один из способов заполнения такой информации. Изучите подходящие для названных целей частные рекомендации, прежде чем адаптировать их или же посмотрите другой заслуживающий внимания стиль.
Пример skel.html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <HTML> <HEAD><TITLE>A sample HTML document</TITLE><LINK REV="made" HREF="mailto:jukka.korpela@hut.fi"></HEAD><BODY><H1>A sample HTML document</H1>This is a sample HTML document examplifying a suggested way of presenting basic origin information.<HR><P><A HREF="http://www.hut.fi/~jkorpela/">Jukka Korpela</A>, <a href="mailto:Jukka.Korpela@hut.fi">Jukka.Korpela@hut.fi</a><BR>This document belongs to the context of<a href="index.html">Learning HTML 3.2 by ../../examples</a><BR>The URL for this document is<KBD>http://www.hut.fi/~jkorpela/HTML3.2/skel.html</KBD><BR>Created: December 5, 1996</BODY></HTML>
Информация о документе - раздел HEAD
Как уже упоминалось, есть две обязательные структуры в HTML 3.2, и они должны быть написаны в следующем порядке:
· <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
(в которой Вы теоретически должны иметь фрагмент HTML 3.2 Final вместо HTML 3.2)
· <TITLE>Introduction to General Absurdity</TITLE>
Большинство броузеров не заметит, если Вы опустите это, но этого требуют спецификации HTML 3.2. Также есть и более важная причина для того, чтобы включить их:
- !DOCTYPE - объявление, которое является определением типа документа (document type definition - DTD) в метаязыке SGML, и которое при обработке документа понятно типовому броузеру SGML. Более того, задание версии HTML, использованное в документе, полезно изучающим код HTML, и, наконец, это также может быть необходимо броузерам и редакторам WWW.
- Имя документа в элементе TITLE функционально используется броузерами и другими программами. Оно обычно выводится на экран в горячем списке, служит возвращаемым средством поиска и т.д.
Формально элемент TITLE является (по крайней мере, если следовать этому буквально) частью элемента HEAD, тогда как объявление !DOCTYPE предшествует всем конструкциям HTML.
Необязательно, но элемент HEAD может содержать следующие элементы в добавление к элементу TITLE:
- элемент ISINDEX (все еще редко используемый)
- элемент BASE, задающий точный базовый адрес ссылок на URL
- элемент META, дающий различную метаинформацию, например дату истечения срока документа
- элемент LINK, который также задает метаинформацию, но уже о связях документа с другими документами
- элементы STYLE и SCRIPT. Ожидается, что в будущем это будут очень важные элементы, но сейчас они еще не используются (так как стандартизация находится в стадии развития).
Организация содержания - заголовки (headings), абзацы (paragraphs), списки (lists) и т.п.
Как правило, Ваш документ состоит из частей, которые, в свою очередь, тоже делятся на части и т.д. В HTML такое разделение делается с использованием заголовков различного уровня. Части самого нижнего уровня в этой иерархии состоят из одного или нескольких абзацев. В дополнение к простым абзацам и некоторым специальным видам абзацев HTML 3.2 поддерживает списки и таблицы, которые можно представить, как подобные абзацам. Внутренняя структура абзацев и подобных им элементов состоит из тегов текстового уровня, которые мы приводим далее.
Теги для выражения главных структурных особенностей, так называемые теги блокового уровня, представляют собой следующее:
- заголовки различных уровней: H1, H2, H3, H4, H5, H6
- теги уровня абзаца:
- простой абзац: P
- цитирование, представляемое как отдельный абзац: BLOCKQUOTE
- адрес автора информации - отдельный абзац: ADDRESS
- элемент, сохраняющий компоновку строк и пробелов предварительно отформатированного текста, PRE
- списки:
- простой неупорядоченный список: UL, LI
- сжатый список, размещаемых одной строкой образов: MENU, LI
- список малых образов: DIR, LI
- упорядоченный список: OL, LI
- дефинитивный список (список меток): DL, DT, DD
- таблицы: TABLE, CAPTION, TR, TH, TD
- разделители документа на части, которые могут иметь свойства своей собственной компоновки (например, центрирование): DIV, CENTER
- изменение темы: HR
- наполнение форм: FORM, ISINDEX.
Рекомендуемый подход для написания HTML документа:
- Записать заголовок для всего документа и для него использовать H1 элемент с атрибутом ALIGN=CENTER.
- Разделить документ на главные части, записать соответствующие названия для них, используя H1 с ALIGN=LEFT. При этом и в дальнейшем старайтесь избегать деления на более, чем семь частей.
- Если необходимо, разделите главную часть на меньшие части с заголовками H2, и, если необходимо, разделите каждую из этих подчастей на части уровня ниже этого с заголовками H3. Избегайте использования заголовков H4 и, в особенности, заголовков H5 и H6, так как они выводятся на экран маленьким шрифтом, отчего документ становится трудночитаемым. (Если Вы все-таки хотите использовать H4, попробуйте разделить документ на еще меньшие части.)
- Если у Вас есть раздел, скажем, с заголовком H2 включающий заголовки H3, избегайте вставки текста между заголовком H2 и первым заголовком H3. Вставка такого текста может быть допустима, если только он содержит очень короткие заметки, такие как: общая ориентировочная информация, некоторые пометки о разделе или девиз. Длинный "бездомный" текст создает неудобство для читателя, который не знаем Ваших намерений. Поэтому используйте подразделы с заголовками соответствующего уровня и с текстом типа "Вводные замечания", "Всеобщее" или "Итоги".
- Разделите меньшие части вышеупомянутой структуры на абзацы или подобные абзацам блоки (именованные списки или таблицы), как описано ниже. Заметьте, что в HTML Вы должны точно обозначить разделение на абзацы элементами HTML; появление пустой строки не заставит параграф прерваться.
- В пределах абзаца используйте элементы текстового уровня, нормальную разметку фраз, чтобы отличать специальные текстовые сегменты от обычного текста, например, поместите в кавычки выводимый компьютером текст или подчеркните ключевые слова.
- Добавьте связи и, если это требуется, изображения или другой иллюстративный материал.
Что касается уровня абзацев, здесь есть много вариантов. Ниже приводим несколько практических советов для выбора подходящего варианта:
- Для абзацев обычного текста используйте элемент P.
- Если текст в абзаце взят из некоторого источника, как помещенная в кавычки цитата, используйте элемент BLOCKQUOTE или, если это программный код, компьютерный листинг (вывод) или некоторый другой текст, для которого не подходит простое отделение его пустыми строками, используйте элемент PRE. В последнем случае, если шрифт одного типа не подходит (например, для поэтического текста), используйте BLOCKQUOTE и добавьте элемент BR к каждой строке.
- В особом случае, когда абзац представляет информацию об авторе (т.е.- о Вас), используйте элемент ADDRESS.
- Для наполненной образами информации, которая логически состоит из отдельных видов образов, используйте различные элементы. Например,:
- Для спиcковых образов, где порядок не важен, например, список ингредиентов в рецепте, используйте элемент UL, или элемент MENU (для списка малых образов), или элемент DIR (для большого списка малых образов, пригодного для представления в многостолбцовом формате). Для представления списка малых образов можно использовать также другие возможности.
- Для списков образов, где важен порядок и его необходимо точно реализовать, и таких, как последовательность команд, которая должна строго соблюдаться, используйте элемент OL.
- Для списка образов с короткими названиями или тегами, например, список определений терминов или сокращений, используйте элемент DL. Однако, в качестве варианта можно рассмотреть использование элемента TABLE для представления дефинитивных списков.
Заметим, что обычно представление образов с использованием элементов MENU и DIR подобно представлению UL элементов. Также стоит учитывать, что представление с помощью элемента DL может быть слишком неудобным. Поэтому просмотрите, пожалуйста, отдельный файл Примеры различных списковых элементов в HTML, чтобы выбрать какое представление списков будет лучшим в Вашем приложении.