Все, что рассматривалось ранее, было созданием HTML‑документов, которые не предусматривали никаких возможностей навигации. Теперь пришло время заняться изучением главного средства, которое сделало использование HTML практически незаменимым для представления связанных между собой документов. Речь идет о гиперссылках. Гиперссылки – ключевой, практически самый главный элемент гипертекста (текста, обладающего возможностями навигации).
Простота, наглядность Рё РІ то же время мощь гиперссылки заключаются РІ том, что ею может быть практически РІСЃРµ что СѓРіРѕРґРЅРѕ: слово РІ тексте, заголовок, СЂРёСЃСѓРЅРѕРє, элемент таблицы Рё РґСЂСѓРіРёРµ элементы HTML‑документа. Для использования гиперссылки РѕС‚ пользователя требуется щелчок РєРЅРѕРїРєРѕР№ мыши РЅР° тексте, изображении или прочем представлении гиперссылки, остальную работу РїРѕ РїРѕРёСЃРєСѓ Рё переходу Рє нужному ресурсу выполнят автоматические системы, начиная СЃ браузера РЅР° компьютере пользователя Рё заканчивая службой DNS, поисковыми машинами Рнтернета. Р’СЃСЏ работа, необходимая для РїРѕРёСЃРєР° Рё загрузки нужных ресурсов, скрыта РѕС‚ пользователя. РћРЅ только РІРёРґРёС‚ результат Рё наслаждается легкостью навигации РІ РѕРіСЂРѕРјРЅРѕРј объеме информации.
5.1. Простой переход к ресурсам
Для создания гиперссылки в тексте HTML‑документа используется элемент A, который задается при помощи парных тегов и . Текст, изображение или другой элемент HTML‑документа, заключенный между этими тегами, становится представлением гиперссылки в тексте. Обычно браузеры отображают гиперссылки таким образом, что их можно однозначно отделить от прочего содержимого документа, например выделяют цветом, подчеркиванием, меняют форму указателя мыши при наведении его на гиперссылку. Обычным действием браузера при переходе по гиперссылке является открытие указанного HTML‑документа в том же или новом окне.
Навигация между HTML-документами
Для создания простейшей гиперссылки, обеспечивающей переход Рє нужному HTML‑документу, достаточно задать РІ качестве значения атрибута href элемента A URI нужного ресурса (файла HTML‑документа). Допустим, что сайт, РїРѕ которому нужно реализовать навигацию, состоит РёР· пяти страниц. Файлы страниц именуются 1.html, 2.html Рё С‚. Рґ. РЈ сайта также есть главная страница (index.html), РЅР° которой находится оглавление. Рлементы оглавления позволяют перейти Рє соответствующим страницам, то есть являются гиперссылками. РўРѕРіРґР° возможный вариант HTML‑документа СЃ оглавлением сайта будет иметь следующий РІРёРґ (пример 5.1).
Пример 5.1. Простая навигация между документами
<TITLE>Главная страница сайта</TITLE>
<BODY>
<DL>
<DT><STRONG>Оглавление</STRONG>
<DD>
<A href = "1.html">Первая страница сайта</A><BR>
<A href = "2.html">Вторая страница сайта</A><BR>
<A href = "3.html">Третья страница сайта</A><BR>
<A href = "4.html">Четвертая страница сайта</A><BR>
<A href = "5.html">Пятая страница сайта</A><BR>
</DL>
</BODY>
Для оформления оглавления использовался рассмотренный ранее список определений. При желании это оформление можно легко изменить. Как можно видеть на рис. 5.1, текст, заключенный между тегами элемента A, стал визуальным представлением гиперссылки в документе. На то, что помещается между тегами и , накладывается ограничение, которое нужно помнить: содержимым гиперссылки не может быть другая гиперссылка.
Рис. 5.1. Оглавление сайта
Если доводить реализацию навигации в рассматриваемом сайте до конца, то логично вставить в каждый HTML‑документ, который является отдельной страницей сайта, гиперссылки для перехода на страницу оглавления, а также для перехода на следующую и предыдущую страницы. Добавление таких ссылок в HTML‑документ в файле 3.html может выглядеть, например, следующим образом:
...
<A href = "index.html">Оглавление</A><BR>
<A href = "2.html">Предыдущая</A><BR>
<A href = "4.html">Следующая</A><BR>
...
До сих пор рассматривался переход при помощи гиперссылок в пределах одного сайта, причем все страницы сайта были расположены в одной папке. При этом для задания местоположения использовались относительные URI. Если страницы сайта расположены в разных папках (допустим, что названия папок совпадают с номерами страниц), то гиперссылки на странице оглавления будут иметь следующий вид:
...
<A href = "1/1.html">Первая страница сайта</A><BR>
<A href = "2/2.html">Вторая страница сайта</A><BR>
...
Для перехода к ресурсам, находящимся за пределами сайта, используются полные URI, например:
<A href = «mydomain.com/homepage.html»>Домашняя страница</A>
Приведенная здесь гиперссылка позволяет перейти к HTML‑документу homepage.html, расположенному на сайте mydomain.com.
Загрузка файлов
Гиперссылки можно использовать не только для перехода между различными HTML‑документами. С их помощью можно выполнять загрузку с серверов различных файлов: архивов, иллюстраций, музыки, видео и т. д. Например, при организации содержания своего электронного фотоальбома можно использовать пример 5.2.
Пример 5.2. Рспользование ссылок РЅР° файлы СЂРёСЃСѓРЅРєРѕРІ
<TITLE>Фотографии из отпуска</TITLE>
<BODY>
<DL>
<DT><STRONG>Мои фотографии на рыбалке</STRONG>
<DD>
<A href = "1/1.jpg">Вот это рыбина!</A><BR>
<A href = "1/2.jpg">Чуть не искупался</A><BR>
...
</DL>
</BODY>
Если вы выберете какую‑либо ссылку, то браузер загрузит соответствующее изображение. Кстати, подобия гиперссылок используются и при вставке изображений непосредственно в HTML‑документ, но как это делается, будет рассмотрено в следующем разделе.
Рассмотрим пример, который можно часто встретить при использовании различных хранилищ файлов. Допустим, есть сайт, с которого можно скачать архивы с концертными фотографиями какой‑нибудь рок‑группы. Тогда страницу оглавления имеющихся архивов можно реализовать в виде следующего HTML‑документа (пример 5.3).
Пример 5.3. Рспользование ссылок РЅР° файлы архивов
<TITLE>Концертные записи РіСЂСѓРїРїС‹ Р РђРЎРџРђР” РЙНШТЕЙНРРЇ</TITLE>
<BODY>
<DL>
<DT><STRONG>Концерт 22.11.2002 в городе N</STRONG>
<DD>
Скачать 18 самых впечатляющих фотографий можно
<A href = "photo/22-11-2002N.rar">здесь</A><BR>
<DT><STRONG>Концерт 24.12.2002 в том же городе N</STRONG>
<DD>
Если вы хотите увидеть самые запоминающиеся эпизоды концерта, жмите
<A href = "photo/24-12-2002N.rar">СЃСЋРґР°</A><BR>
</DL>
</BODY>
При выборе любой из ссылок браузер (если рассматривать Internet Explorer) отобразит окно, в котором спросит у пользователя, что делать с файлом архива: открыть или сохранить на диске компьютера пользователя. Пользователь может выбирать, что ему угодно. Важно лишь то, что он получил доступ к файлам архивов на сервере.
Ссылки на другие службы
Ранее рассматривалось использование гиперссылок только для навигации между HTML‑документами и загрузки файлов с сервера с использованием протокола HTTP. В гиперссылках предыдущих примеров протокол HTTP не указывался, так как он используется по умолчанию.
Теперь будет рассмотрено создание гиперссылок РЅР° ресурсы, протокол работы СЃ которыми отличен РѕС‚ HTTP: ссылки РЅР° службы новостей, ссылки РЅР° ресурсы FTP‑серверов Рё ссылки РЅР° почтовые службы. Начнем СЃРѕ ссылок РЅР° ресурсы FTP‑серверов. FTP – протокол передачи файлов (File Transfer Protocol), который является РѕРґРЅРёРј РёР· самых старых протоколов Рнтернета. Ртот протокол Рё теперь используется РЅР° некоторых серверах‑хранилищах файлов (файловых серверах). Ниже приведен пример типичного адреса ресурса FTP‑сервера:
ftp://file_storage.com
Как видно, URI FTP‑ресурса отличается только наименованием протокола. Однако отличий FTP от HTTP при использовании несколько больше. Дело в том, в большинстве случаев FTP‑серверы могут при установке подключения проводить авторизацию пользователя, то есть создавать именное подключение. В приведенном же ранее примере устанавливалось анонимное подключение. Чтобы подключиться к FTP‑серверу под именем зарегистрированного на FTP‑сервере пользователя, нужно указать в адресе имя пользователя следующим образом:
ftp://user234@file_storage.com
В большинстве случаев при установке именного FTP‑подключения требуется ввод пароля. Если пароль нужно вводить, браузер отобразит окно ввода пароля.
Пароль можно указать прямо в адресе следующим образом (mypass – это и есть пароль):
ftp://user234:mypass@file_storage.com
Для создания гиперссылки на адрес электронной почты достаточно для атрибута href HTML‑элемента A использовать похожее значение:
mailto:[email protected]
При переходе по такой гиперссылке откроется почтовая программа по умолчанию. При этом поле адреса будет заполнено значением [email protected]. При создании гиперссылки на адрес электронной почты можно позаботиться об автоматическом формировании текста, темы или других сведений, например:
mailto:[email protected]?subject=Тема письма
&[email protected]&[email protected]
&body=Текст письма
В данном случае значения полей, которые будут заполнены в окне почтовой программы, указываются после адреса электронной почты. Так, например, если почтовая программа по умолчанию – Microsoft Outlook, то при выборе в окне браузера гиперссылки с приведенным выше значением атрибута href окно Microsoft Outlook будет выглядеть так, как показано на рис. 5.2.
Рис. 5.2. Автоматическое заполнение полей почтовой программы
РР· СЂРёСЃСѓРЅРєР° можно увидеть, какое поле как обозначается РІ строке почтового адреса гиперссылки (subject, cc, bcc Рё body). Остается только лишь подчеркнуть, что СЃРёРјРІРѕР» & служит для разделения информации, заносимой РІ различные поля. Значения всех полей задавать РЅРµ обязательно, РЅРѕ РїРѕСЂСЏРґРѕРє РёС… задания важен Рё является таким, как было показано РІ приведенном выше примере.
5.2. Навигация в пределах документа
Теперь будут рассмотрены возможности гиперссылок по быстрому перемещению не между различными страницами, а в пределах одного HTML‑документа.
Перед тем как создавать средства навигации по HTML‑документу, нужно рассмотреть ключевое понятие, которое используется применительно к гиперссылкам, – якорь ссылки. Когда речь идет о гиперссылках, то обычно упоминаются два якоря: начальный и якорь назначения. Соответственно, и переход по гиперссылке осуществляется от начального якоря к якорю назначения.
Как можно было увидеть из приведенных ранее примеров, при задании якоря назначения гиперссылки указывается URI какого‑либо ресурса. В гл. 1 уже говорилось, что URI могут также указывать на части HTML‑документов. Части документов, на которые могут быть установлены гиперссылки, выделяются специальным образом: с этими частями связываются якоря, которые и используются впоследствии в гиперссылках.
Создание СЏРєРѕСЂСЏ РІ документе можно выполнять РґРІСѓРјСЏ способами. Первый СЃРїРѕСЃРѕР± – это использование HTML‑элемента A СЃ указанием РІ качестве значения его атрибута name идентификатора СЏРєРѕСЂСЏ. Рдентификатор должен быть уникальным РІ пределах HTML‑документа, например РІ следующей строке создается СЏРєРѕСЂСЊ СЃ именем par1, который связан СЃ заголовком – началом первого раздела документа:
<A name = «par1»><H1>Раздел 1</H1></A>
Чтобы иметь возможность перейти к созданному якорю из другого места того же документа, создается соответствующая гиперссылка:
<A href = «#par1»>Раздел 1</A>
Если нужно осуществлять переход к рассматриваемому якорю из другого документа, то можно использовать следующее задание гиперссылки в документе, откуда осуществляется переход (допустим, что файл с якорем называется chapter2.html):
<A href = «chapter2.html#par1»>Раздел 1</A>
При создании любой гиперссылки можно одновременно задавать ее атрибуты href и name. При этом создаются собственно гиперссылка и якорь, к которому может осуществляться обратный переход (то есть гиперссылка становится якорем для других гиперссылок):
<A href = «chapter2.html#par1» name = «content»>Раздел 1</A>
Теперь можно рассмотреть и второй способ создания якорей для гиперссылок. Якорь гиперссылки, связанный с определенным элементом HTML‑документа, можно создать, указав значение атрибута id соответствующего элемента. Атрибут id поддерживается практически для всех HTML‑элементов (не поддерживается только для BASE, HEAD, HTML, META, SCRIPT, STYLE, TITLE). Например, создание приведенного чуть ранее якоря для заголовка первого раздела документа можно выполнить и так:
<H1 id = «par1»>Раздел 1</H1>
Работа с якорем, созданным таким образом, ничем не отличается от работы с якорем, созданным при помощи HTML‑элемента A.
Важным моментом является то, что Рё атрибут id, Рё атрибут name используют РѕРґРЅРѕ Рё то же пространство имен. Рто означает, что РїСЂРё помощи этих атрибутов РЅРµ может быть определен СЏРєРѕСЂСЊ СЃ одинаковым именем РІ различных местах документа. Для элементов, поддерживающих атрибут name, можно задавать значения id Рё name одновременно, РЅРѕ РїСЂРё этом эти значения должны быть равны между СЃРѕР±РѕР№. Например, создание СЏРєРѕСЂСЏ следующим образом является полностью корректным:
<A name = «par1» id = «par1»><H1>Раздел 1</H1></A>
5.3. Прочие атрибуты гиперссылок
Помимо упомянутых выше, у HTML‑элемента A есть еще целый ряд необязательных атрибутов, основные из которых перечислены ниже:
• accesskey – задает клавишу быстрого доступа, например "C", "N", при нажатии которой пользователь перейдет по гиперссылке (в Windows нажимается клавиша Alt + быстрая клавиша);
• charset – кодировка ресурса, на который указывает гиперссылка;
• hreflang – задает язык ресурса, на который указывает гиперссылка;
• type – задает так называемый MIME‑тип содержимого ресурса, на который указывает гиперссылка (описание MIME‑типов см. в разд. 6.5);
• tabindex – порядок табуляции, в котором активируется гиперссылка (значение от 0 до 32 767);
• rel – роль документа, на который указывает гиперссылка; основные значения вместе с описаниями приведены в табл. 5.1;
• rev – роль текущего документа по отношению к документу, на который указывает гиперссылка; значения см. в табл. 5.1.
Таблица 5.1. Типы ссылок, задаваемые атрибутами rel и rev (значения этих атрибутов)
Теперь пара слов РѕР± атрибуте tabindex. Рспользовать этот атрибут очень СѓРґРѕР±РЅРѕ, РєРѕРіРґР° нужно обеспечить перемещение РїРѕ документу РїСЂРё помощи табуляции. Табуляция обеспечивается нажатием клавиши Tab. Гиперссылки Рё некоторые РґСЂСѓРіРёРµ части документа можно нумеровать, задавая РїРѕСЂСЏРґРѕРє, РІ котором РѕРЅРё Р±СѓРґСѓС‚ активироваться РїСЂРё табуляции. Рлементы документа, для которых РЅРµ задано значение атрибута tabindex, перебираются РІ РїРѕСЂСЏРґРєРµ РёС… следования РІ документе.