|
HTML (HyperText Markup Language) - это язык, принятый в World Wide Web
для создания и публикации Веб-страниц. HTML предоставляет авторам средства
для:
- включения в Веб-документы заголовков, текста, таблиц, списков,
фотографий и т. п.;
- перехода к другим Веб-страницам посредством щелчка кнопки мыши по
гипертекстовой ссылке;
- создания и заполнения форм для транзакций с удаленными службами,
например, для поиска информации, бронирования билетов, оформления
заказов на товары и т. п.
- непосредственного включения в Веб-документы видеоклипов, звука и
других внешних объектов.
Фактически, современная Веб-страница формируется с помощью трех
языковых средств:
- язык HTML используется для задания логической структуры
документа (заголовки, абзацы, графические изображения и прочие
объекты);
- язык каскадных стилей CSS используется для
задания способа отображения документа (цвета текста и фона,
шрифты, способы выравнивания и позиционирования отдельных объектов на
странице и т. п.);
- языки программирования сценариев (чаще всего JavaScript) используются
для написания сценариев, т. е. небольших программ, которые
исполняются обозревателем в процессе отображения документа и
обеспечивают его динамическое изменение в ответ на различные
события.
HTML-документ является той средой, в которой
размещаются остальные компоненты Веб-страницы.
Поэтому начнем с описания языка HTML,
за которым следуют описания CSS и JavaScript.
Первоначально HTML был разработан Тимом Бернерсом-Ли (Tim Berners-Lee)
и его коллегами из CERN Laboratories для обмена текстовыми документами и
другими данными между учеными и приобрел популярность благодаря
обозревателю Mosaic, авторы которого добавили к нему поддержку графических
образов и ряд других полезных качеств. Быстрое развитие Сети в 90-е годы
потребовало стандартизации этого языка, и в ноябре 1995 г. по эгидой IETF был создан HTML
2.0. Следующим шагом стала кодификация W3C в январе 1997 г.
новой, гораздо более мощной версии HTML 3.2. Наконец, в апреле 1998 г.
появился HTML 4.0, который является в настоящее время действующим
стандартом языка (в уточненной редакции HTML 4.01, опубликованной в
декабре 1999 г.)
HTML - это теговый язык разметки документов. Иными
словами, любой документ на языке HTML представляет собой набор
элементов, причем начало и конец каждого элемента обозначается
специальными пометками, называемыми тегами.
Элементы - это структуры, которые описывают отдельные составляющие
HTML-документа. Элемент состоит из трех частей: начального тега,
содержимого и конечного тега. Тег - это специальный текст,
заключенный в угловые скобки "<" и ">". Конечный тег имеет то же
имя, что начальный тег, но начинается с косой черты "/". Например, элемент
EM
(выделение текста) выглядит так:
<EM>выделяемый текст</EM>
Имена элементов могут быть набраны в любом регистре, т. е.
<EM> и <em> равнозначны.
Элементы должны либо следовать друг за другом, либо быть вложены один в
другой. Если начальный тег <EM> расположен внутри
элемента <P>…</P>, то и конечный тег
</EM> должен быть расположен внутри этого
элемента.
Конечные теги некоторых элементов могут быть опущены. Например,
конечный тег элемента LI
(пункт списка) не обязателен, поскольку начало очередного пункта списка
означает конец предыдущего пункта:
<UL>
<LI>Первый пункт списка без конечного тега
<LI>Второй пункт списка с необязательным конечным тегом</LI>
<LI>Третий пункт списка без конечного тега
</UL>
Мы, однако, рекомендуем указывать конечный тег элемента даже в тех
случаях, когда стандарт позволяет его опустить. Для этого есть две
причины:
- при использовании каскадных таблиц стилей отсутствие конечного тега
элементов часто приводит к непредсказуемым результатам;
- в соответствии со стандартом XHTML, описанным ниже,
каждый элемент должен иметь конечный тег.
Некоторые элементы, такие, как BR
(новая строка), не имеют конечного тега, поскольку не имеют
содержимого.
Атрибуты элемента определяют его свойства. Например, элемент IMG
(графический образ) имеет атрибут src, указывающий
расположение графического файла, и атрибут alt, задающий
альтернативный текст на тот случай, если обозреватель не отображает
графику:
<IMG src="mylogo.gif" alt="Диг Киллер">
Атрибуты всегда включаются в начальный тег элемента и имеют вид: имя_атрибута="значение_атрибута"
Значение атрибута может быть заключено в одинарные или двойные кавычки.
Кавычки можно опустить, если значение атрибута состоит только из латинских
букв (A-Za-z), цифр (0-9), дефисов ("-"), подчеркиваний ("_"), двоеточий
(":") и точек (".").
Имена атрибутов могут быть набраны в любом регистре, но их значения
могут зависеть от регистра. Мы для определенности всюду в дальнейшем пишем
имена элементов прописными буквами, а именами атрибутов строчными.
Ряд символов в языке HTML зарезервирован и должен представляться
специальным образом:
| левая угловая скобка ("<") |
< |
| правая угловая скобка (">") |
> |
| амперсант ("&") |
& |
| двойная кавычка (") |
" |
Для некоторых символов, отсутствующих на клавиатуре, также есть
специальные обозначения. Например, символ авторского права
© представляется как ©. Полный
перечень специальных символов приведен в приложении.
При желании авторы могут пользоваться и числовой кодировкой символов в
стандарте Unicode. При этом символ может быть задан своим десятичным кодом
(&#код;) или шестнадцатеричным кодом
(&#xкод;). Например
© представляет символ авторского права
©, а А - русскую букву
А. Поддержка: Некоторые специальные символы не отображаются.
Некоторые специальные символы не отображаются;
шестнадцатеричные коды символов не распознаются.
HTML-документы могут содержать комментарии, которые не влияют на
отображение документа, а только поясняют его содержимое при просмотре
HTML-текста. Комментарии в HTML имеют довольно сложный синтаксис, поэтому
мы рекомендует следовать следующим четким правилам:
- начинайте комментарий с символов "<!--",
- завершайте комментарий символами "-->",
- не используйте внутри комментария символов "--".
Пример комментариев:
<!-- это комментарий -->
<!-- а вот еще комментарий,
занимающий более одной строки -->
Значения атрибутов в языке HTML могут иметь различные типы данных.
Основными типами данных являются следующие.
- CDATA
- Значения атрибутов типа CDATA являются цепочками символов, включая,
возможно, специальные символы. При отображении переносы строк
игнорируются, а символы возврата каретки и табуляции заменяются на
пробелы. Также игнорируются начальные и конечные пробелы в значении
атрибута. Обычно (но не всегда) значения типа CDATA зависят от регистра.
- ID и NAME
- Значения атрибутов типа ID и NAME должны начинаться с латинской
буквы (A-Za-z) и состоять только из латинских букв (A-Za-z), цифр (0-9),
дефисов ("-"), подчеркиваний ("_"), двоеточий (":") и точек ("."). Эти
значения зависят от регистра. Они отличаются тем, что NAME может
содержать специальные символы, а ID не может.
- IDREF и IDREFS
- Значения типа IDREF и IDREFS указывают на идентификаторы, т. е.
на значения атрибута id других элементов. Значение типа
IDREF - это единственный идентификатор, а значение типа
IDREFS - это список идентификаторов, разделенных пробелами. IDREF и
IDREFS зависят от регистра.
- Число
- Числовые значения атрибутов - это десятичные числа, состоящие
хотя бы из одной цифры (0-9).
- Текст
- Текстовые значения атрибутов - это значения типа CDATA,
представляющие собой осмысленный текст.
- URI
- Значения атрибутов типа URI - это унифицированные
идентификаторы ресурсов (полные или относительные), синтаксис которых
должен соответствовать приложению.
- Цвет
- Цветовые значения атрибутов могут задаваться либо шестнадцатеричным
числом с префиксом "#" вида "#rrggbb", задающим RGB-код цвета, либо
одним из 16-ти символических имен, приведенных в таблице.
Имена цветов не зависят от регистра.
Примечание. Обозреватели Microscape
дополнительно поддерживают имена цветов, перечисленные в таблице.
- Пиксели
- Значения этого типа - целые числа, задающие количество
пикселей.
- Размер
- Значения этого типа - либо целые числа, задающие количество
пикселей, либо доли в процентах от размера по горизонтали или вертикали:
например, 50% означает половину всего размера, а 50 означает 50
пикселей.
- Кратный размер
- Кратный размер - это либо целое число, задающее количество
пикселей, либо доля в процентах от размера по горизонтали или вертикали,
либо относительный размер вида i*, где
i - целое число. При распределении пространства
обозреватель сначала выделяет место для размеров, заданных в числах и
процентах, а затем разделяет оставшееся пространство между элементами с
относительными размерами. Элементу размером 3* будет
выделено пространство в три раза большее, чем элементу размером
1*. Значение * эквивалентно
1* и часто означает "заполнить оставшееся
пространство".
- Кратные размеры
- Значения этого типа - список кратных размеров, разделенных
запятыми.
- Тип файла
- Значения атрибутов этого типа задают типы файлов MIME для связанных
или вложенных ресурсов. Список всех зарегистрированных типов содержится
в приложении.
- Типы файлов
- Значения этого типа - список типов файлов, разделенных
запятыми.
- Код языка
- Значения атрибутов этого типа задают код языка согласно приложению. Код языка не
зависит от регистра и не должен содержать пробелов.
- Кодировка и Кодировки
- Значения этого типа задают имя таблицы кодировки символов согласно
приложению.
Значение типа Кодировка - это единственное имя таблицы кодировки, а
значение типа Кодировки - это список имен, разделенных пробелами
или запятыми. Они не зависят от регистра.
- Символ
- Значение символьного атрибута - это единственный символ
Unicode, который может быть также специальным символом.
- Дата-время
- Значения атрибутов этого типа задают дату и время в формате
ГГГГ-ММ-ДДТчч:мм:ссУВЗ, где
ГГГГ - четырехзначный номер года, ММ -
двузначный номер месяца (01 - 12), ДД - двузначный
номер дня (01 - 31), чч - двузначный номер часа
(00 - 23), мм - двузначный номер минуты (00 -
59), cc - двузначный номер секунды (00 - 59) и
УВЗ - указатель временной зоны. Отметим, что буква
Т, отделяющая дату от времени - это именно
прописная латинская буква Т. Если какой-либо из компонентов времени
неизвестен, то используется 00. Указатель временной
зоны может принимать следующие значения:
- Z (прописная), указывающая на время по Гринвичскому
меридиану (UTC, Universal Coordinated Time);
- +чч:мм, положительная разница с временем UTC в
часах и минутах;
- -чч:мм, отрицательная разница с временем UTC в
часах и минутах.
- Типы ссылок
- Значения атрибутов этого типа представляют собой список типов
ссылок, разделенных пробелами. Тип ссылки не зависит от регистра и не
может содержать пробелов. HTML 4.0 определяет перечисленные ниже типы
ссылок, хотя авторы могут использовать и свои собственные типы.
Например, в HTML 4.0 пропущен очень популярный тип ссылки
Made, обеспечивающий контакт с автором документа:
<LINK rev="Made" href="mailto:somebody@somewhere.com">
Типы ссылок в HTML
| Alternate |
Альтернативная версия документа. С атрибутом lang
указывает на перевод данного документа на другой язык, с атрибутом
media указывает на версию документа,
предназначенную для другого носителя (например, для печати). |
| Stylesheet |
Указывает на внешнюю таблицу стилей. Этот тип ссылки может
использоваться в сочетании с типом Alternate для
альтернативных таблиц стилей по выбору пользователя. |
| Start |
Ссылка на первый документ в коллекции. Сообщает поисковым
системам, какой из документов коллекции автор считает
начальным. |
| Next |
Ссылка на следующий документ в коллекции. Такие обозреватели,
как WebTV,
могут использовать эту ссылку для предварительной загрузки
следующего документа с целью экономии времени. |
| Prev |
Ссылка на предыдущий документ в коллекции. |
| Contents |
Ссылка на документ, содержащий оглавление. |
| Index |
Ссылка на документ, содержащий алфавитный указатель. |
| Glossary |
Ссылка на документ, содержащий глоссарий терминов. |
| Copyright |
Ссылка на документ, содержащий сведения об авторском
праве. |
| Chapter |
Ссылка на документ, служащий главой в коллекции
документов. |
| Section |
Ссылка на документ, служащий разделом в коллекции
документов. |
| Subsection |
Ссылка на документ, служащий подразделом в коллекции
документов. |
| Appendix |
Ссылка на документ, служащий приложением в коллекции
документов. |
| Help |
Ссылка на документ, содержащий справочную информацию. |
| Bookmark |
Указывает на закладку, т. е. содержит ссылку по имени,
которое задается атрибутом title. |
| Shortcut Icon |
Ссылка на значок документа в папке "Избранное" для обозревателя
Internet Explorer 5.x. |
- Устройства
- Значения атрибутов этого типа представляют собой список имен
устройств для отображения документа, разделенных пробелами. Имена
устройств зависят от регистра и могут быть следующими.
Имена устройств
отображения
| all |
все типы устройств |
| aural |
синтезатор речи |
| braille |
тактильное устройство Брайля для слепых |
| embossed |
печатающее устройство Брайля |
| handheld |
переносное устройство (например, пейджер) |
| print |
принтер |
| projection |
проектор |
| screen |
графический дисплей |
| tty |
неграфический дисплей (терминал, телетайп) |
| tv |
телевизор |
- Сценарий
- Значения атрибутов этого типа - это сценарии клиента, которые
обычно представляют собой вызов функции или несколько операторов на
интерпретируемом языке. Синтаксис сценария определяется синтаксическими
правилами соответствующего языка программирования.
- Таблица стилей
- Значения атрибутов этого типа - таблицы стилей на языке CSS.
- Фрейм
- Значения атрибутов этого типа задают имена фреймов. Они должны
начинаться с латинской буквы (A-Za-z), за исключением следующих
специальных значений.
Специальные имена
фреймов
| _blank |
Загрузить документ в новое безымянное окно. |
| _self |
Загрузить документ в окно текущего фрейма. |
| _parent |
Загрузить документ в окно предка текущего фрейма. Если фрейм не
имеет предка, эквивалентно _self. |
| _top |
Загрузить документ в полное текущее окно, отменяя тем самым все
фреймы. |
Ряд атрибутов применим к большинству элементов HTML. Эти атрибуты
подразделяются на:
- базовые атрибуты (class,
id,
style
и title),
которые определяют общие свойства элементов;
- локализующие атрибуты (dir
и lang),
которые указывают на свойства языка, на котором написано содержимое
элемента;
- обработчики событий, которые определяют реакцию данного
элемента на различные события.
Синтаксис: id = ID Поддержка: Полное соответствие стандарту (2.0+)
Полное соответствие стандарту (3.0+)
Атрибут id присваивает элементу имя, уникальное в
пределах данного документа. Никакие два элемента не могут иметь одинаковых
значений id. Этот атрибут имеет несколько применений в
HTML:
В следующем примере атрибут id использован для
идентификации двух абзацев:
<P id="firstp">Мой первый абзац.</P>
<P id="secondp">Мой второй абзац.</P>
С абзацами из этого примера могут быть связаны соответствующие стили.
Например, следующая таблица стилей определяет цвета каждого из
абзацев:
P#firstp { color: navy; background: transparent }
P#secondp { color: black; background: transparent }
Эти же абзацы могут использоваться как цель в гиперссылках:
<P>См. также <A HREF="#firstp">первый абзац</A>.</P>
Этот атрибут применим ко всем элементам, кроме BASE,
HEAD,
HTML,
META,
SCRIPT,
STYLE
и TITLE.
Примечание. Значения атрибутов
id и name хранятся в одном пространстве
имен, поэтому их значения не могут совпадать в пределах документа. Отметим
также, что name может содержать специальные символы, а
id нет.
Синтаксис: class = список CDATA Поддержка: Полное соответствие стандарту (2.0+)
Списки имен классов игнорируются (4.0+)
Атрибут class указывает, что элемент является членом
определенного класса. В отличие от атрибута id
любое количество элементов может относиться к одному классу. Далее,
элемент может принадлежать к нескольким классам - в этом случае
значением атрибута является список имен классов, разделенных
пробелами.
Примечание. Большинство обозревателей не
поддерживают списки классов, попросту игнорируя такой атрибут
class.
Атрибут class особенно полезен в селекторах стилей.
Рассмотрим следующий пример:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
<HEAD>
<STYLE type="text/css">
p { font-size: medium }
p.note { font-size: small }
</STYLE>
</HEAD>
<BODY>
<P>Обычный абзац</P>
<P class="note">Примечание</P>
</BODY>
</HTML>
Здесь в заголовке документа заданы размеры шрифта для обычных абзацев и
для абзацев класса note (примечание). Теперь для того,
чтобы включить в текст примечание, достаточно присвоить соответствующему
абзацу (т. е. элементу P)
атрибут class="note". Именно так построены все примечания
в данном справочнике.
Этот атрибут применим ко всем элементам, кроме BASE,
HEAD,
HTML,
META,
PARAM,
SCRIPT,
STYLE
и TITLE.
Синтаксис: style = таблица стилей Поддержка: Полное соответствие стандарту (3.0+)
Полное соответствие стандарту (4.0+)
Атрибут style позволяет задать стиль элемента внутри
его начального тега, например:
<P>Популярным экранным шрифтом является
<SPAN style="font-family: Verdana">Verdana</SPAN>.</P>
Для использования этого атрибута в заголовок документа должен быть
включен метаописатель
<META http-equiv="Content-Style-Type" content="text/css">
В большинстве случаев употребление атрибутов class
и id
предпочтительнее, т. к. они обеспечивают разделение содержимого
документа и стиля его отображения, что обычно упрощает сопровождение
разработки.
Этот атрибут применим ко всем элементам, кроме BASE,
HEAD,
HTML,
META,
PARAM,
SCRIPT,
STYLE
и TITLE.
Синтаксис: title = текст Поддержка: Полное соответствие стандарту, выводится как подсказка (4.0+)
Не поддерживается
Атрибут title определяет титул элемента и часто
используется обозревателями как подсказка (tooltip), которая выводится на
экран, когда курсор помещается на данный элемент. Он особенно полезен в
элементах A, LINK,
IMG и
OBJECT,
в которых он указывает на титул связанного или вложенного ресурса.
Приведем несколько примеров.
Ссылка на почтовый ящик:
<A href="mailto:digkiller@mail.ru"
title="Пошлите мне свои замечания">digkiller@mail.ru</A>
Ссылка на Веб-страницу:
<A href="http://www.digkiller.narod.ru/pics/pics.htm"
title="Библиотека CGI-сценариев">CGI.pm</A>
Ссылка на альтернативную Веб-страницу:
<LINK rel="Alternate" href="index.html" hreflang=ru lang=ru title="Русская версия">
Ссылка на аплет:
<OBJECT classid="java:Audio.class" codetype="application/java"
style="width: 666; height: 13"
standby="Хочешь послушать?" title="Это моя песня">
<IMG src="music99.gif" alt="" title="DigKiller' Holiday">
Holiday - Это <EM>моя</EM> песня!
</OBJECT>
Атрибут title полезен также с элементами ABBR
и ACRONYM,
где он позволяет дать расшифровку сокращения. Примеры:
<P>Ширина листа 20 <ABBR title="сантиметров" lang=ru>см</ABBR>.</P>
<ACRONYM title="Организация Объединенных Наций">ООН</ACRONYM>
Синтаксис: lang = код языка Поддержка: Распознается, но игнорируется (2.0+)
Распознается, но игнорируется (3.0+)
Атрибут lang определяет естественный язык, на котором
написаны значения остальных атрибутов данного элемента и его содержимое (а
также всех вложенных элементов, не имеющих своего атрибута
lang). Хотя этот атрибут поддерживается не слишком
широко, он находит все большее применение, например:
- некоторые поисковые системы индексируют документы по их языку;
- синтезаторы речи могут использовать правила произношения,
определяемые конкретным языком;
- обозреватели могут в зависимости от языка использовать различные
шрифты, учитывать правила переноса слов, проверять правописание и
т. д.
Значение атрибута lang не зависит от регистра. Список
его возможных значений приведен в приложении.
Использование lang также позволяет авторам легко
менять стиль текста в зависимости от языка. Например, один из языков в
двуязычном документе может изображаться курсивом или произноситься другим
голосом в синтезаторе речи. Текст такого документа должен оформляться
следующим образом:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
<HEAD>
<TITLE>Welcome - Добро пожаловать</TITLE>
</HEAD>
<BODY>
<H1><SPAN lang=en>Welcome</SPAN> - <SPAN lang=ru>Добро пожаловать</SPAN></H1>
<P lang=en>This paragraph is in English.</P>
<P lang=ru>Этот абзац на русском языке.</P>
</BODY>
</HTML>
Основной язык документа может быть задан атрибутом
lang в элементе HTML
или в поле заголовка HTTP
Content-Language.
Этот атрибут применим ко всем элементам, кроме BASE,
BR,
FRAME,
FRAMESET,
IFRAME,
PARAM
и SCRIPT.
Примечание. Атрибут lang
не должен использоваться для задания направления вывода текста - оно
задается атрибутом dir.
Синтаксис: dir = ltr | rtl Поддержка: Полное соответствие стандарту (5.0+)
Не поддерживается
Атрибут dir определяет направление вывода текста:
слева направо (dir="ltr", по умолчанию) или справа налево
(dir="rtl"). Всем символам в кодировке Unicode приписано
направление, с тем, чтобы текст отображался правильно. Так, латинские и
русские буквы выводятся слева направо, а еврейские и арабские - справа
налево.
Стандарт Unicode определяет двунаправленный алгоритм, который должен
применяться всякий раз, когда документ содержит символы, выводимые справа
налево. Хотя обычно этот алгоритм дает правильное изображение текста,
существуют ситуации, когда направление вывода текста приходится задавать
явно с помощью атрибута dir.
Допустим, например, что русское предложение содержит ивритскую фразу,
которая содержит английскую цитату. В этом случае направление вывода
ивритской фразы потребует явного указания направления: ивритская фраза,
включая английскую цитату, должна быть заключена в элемент SPAN
или BDO с
атрибутом dir="rtl".
Этот атрибут применим ко всем элементам, кроме BASE,
BR,
FRAME,
FRAMESET,
IFRAME,
PARAM
и SCRIPT.
Синтаксис: имя_события = сценарий Поддержка: Полное соответствие стандарту (4.0+)
Полное соответствие стандарту (3.0+)
HTML поддерживает обработку многих событий, которые могут происходить
на компьютере-клиенте. Для обработки события нужно присвоить элементу
соответствующий атрибут, имя которого является именем этого события, а
значением - сценарий (либо вызов функции, либо набор операторов). Значение
такого атрибута может содержать специальные символы.
Следующий пример использует операторы языка JavaScript для обработки
двух событий, связанных с кнопкой "Submit", а именно выводит подсказку в
строке состояния, когда курсор мыши попадает на кнопку, и очищает строку
состояния, когда курсор мыши оказывается за ее пределами. Обратите
внимание, что значения атрибутов заключены в одинарные кавычки из-за того,
что двойные кавычки использованы внутри них.
<INPUT type=submit
onmouseover='window.status="Вы заполнили всю форму?";'
onmouseout='window.status="";'>
Если документ содержит обработку событий, то язык сценариев, принятый
по умолчанию, должен быть задан в заголовке документа в метаописателе
<META http-equiv="Content-Script-Type" content="text/javascript">
Следующие атрибуты событий применимы ко всем элементам, кроме BASE,
BDO,
BR,
FRAME,
FRAMESET,
HEAD,
HTML,
IFRAME,
META,
PARAM,
SCRIPT, STYLE
и TITLE.
Все они связаны либо с нажатием клавиш на клавиатуре, либо с движением
мыши и нажатием ее кнопок.
Стандартные события в
HTML
| Имя события |
Происходит |
| onclick |
при щелчке кнопки мыши на элементе |
| ondblclick |
при двойном щелчке кнопки мыши на элементе |
| onmousedown |
при нажатии кнопки мыши на элементе |
| onmouseup |
при отпускании кнопки мыши на элементе |
| onmouseover |
при попадании курсора мыши на элемент |
| onmousemove |
при движении курсора мыши по элементу |
| onmouseout |
при попадании курсора мыши за пределы элемента |
| onkeypress |
при нажатии и отпускании клавиши на элементе |
| onkeydown |
при нажатии клавиши на элементе |
| onkeyup |
при отпускании клавиши на
элементе |
|