12.1 Гіперпосилання і якоря. Вступ
12.1.1 "Відвідування" пов'язаного ресурсу
Акцією за замовчуванням, асоційованої з посиланням, є запит іншого ресурсу Web. Така дія є звичайним і неявно мається на увазі при виборі гіперпосилання (напр. Клацанням на ній мишею, введенням з клавіатури і т.д.).
Наступний уривок HTML містить два посилання. якір однією з яких вказує на документ HTML з назвою "chapter2.html", а якір інший - на GIF-зображення в файлі "forest.gif":
Якоря призначення в документах HTML можуть бути специфіковані елементом A (атрибутом name) або будь-яким іншим елементом (атрибутом id).
Того ж ефекту можна досягти, зробивши елементи-заголовки якорями:
Ролі гіперпосилання, що визначаються A або LINK. встановлені атрибутами rel і rev.
Наприклад, посилання, певні елементом LINK. можуть описувати позицію документа в серії документів. У наступному уривку гіперпосилання в документі, названому "Chapter 5", вказують на наступну і попередню глави:
Тип першого посилання - "prev", а другий - "next" (два з декількох розпізнаються типів посилань). Гіперпосилання, специфіковані в LINK. не розглядаються як вміст документів, хоча ПА можуть відображати їх іншими способами (напр. утилітами навігації).
12.1.3 Специфікація якорів і гіперпосилань
Хоча гіперпосилання на інші ресурси створюються різними елементами і атрибутами (напр. Елемент IMG. Елемент FORM і т.д.), в цьому розділі розглядаються гіперпосилання і якоря, створювані елементами LINK і A.
Елемент LINK може з'являтися тільки в "шапці" документа.
Елемент A може з'являтися тільки в тілі документа.
Якщо в елементі A встановлений атрибут href. цей елемент визначає якір-джерело гіперпосилання, який може бути активований користувачем для запиту Web-ресурсу. Якір джерела це розміщення об'єкта A. а якір призначення - це ресурс Web.
Запитаний ресурс може бути оброблений ПА різними способами:
- відкриття нового документа HTML в тому ж вікні ПА,
- відкриття нового документа HTML в іншому вікні,
- запуск іншої програми для обробки ресурсу і т.д.
Оскільки елемент A має вміст (текст, зображення і т.п.), ПА можуть позначити наявність цього вмісту, наприклад, підкресленням гіперпосилання.
Якщо атрибути name або id елемента A встановлені, даний елемент визначає якір, який може служити якорем призначення інших гіперпосилань.
Елемент LINK визначає взаємовідношення між поточним документом і іншим ресурсом. Хоча LINK не має вмісту, взаємини, які визначаються їм, можуть відтворюватися деякими ПА.
Атрибут title може бути встановлений елементами A і LINK для додавання інформації про заслання. Ця інформація може вимовлятися ПА, може бути показана як підказка, викликати зміна виду курсора і т.д.
Таким чином, ми можемо розширити попередній приклад. додавши заголовок до кожного посилання:
Атрибут hreflang постачає ПА інформацією про мову ресурсу гіперпосилання так само, як атрибут lang дає інформацію про мову вмісту елемента або значеннях атрибутів.
12.2 Елемент A
Атрибути, визначені в іншому місці
Кожен елемент A визначає якір:
- Вміст елемента A визначає місцезнаходження якоря.
- Атрибут name іменує якір так, що він може бути якорем призначення 0 або більше посилань (див. Також якоря з атрибутом id).
- Атрибут href робить цей якір джерелом однієї конкретної гіперпосилання.
Щоб явно вказати ПА набір символів сторінки призначення, встановіть значення атрибута charset:
Припустимо, ми визначили якір "anchor-one" в файлі "one.html".
Так створюється якір навколо тексту "This is the location of anchor one.". Зазвичай вміст A не відображається, якщо A визначає тільки якір.
Визначивши якір, ми можемо посилатися на нього з цього ж або іншого документа.
URI, що позначають якір, містять символ "#" і наступне за ним ім'я якоря (ідентифікатор фрагмента). Ось кілька прикладів таких URI:
Елемент A в наступному прикладі визначає гіперпосилання (за допомогою href) і одночасно створює іменований якір (за допомогою name):
Цей приклад містить посилання на Web-ресурс іншого типу (зображення PNG). Активація гіперпосилання має викликати отримання ресурсу з Web (і, можливо, відображення його, якщо система налаштована відповідним чином).
Примітка. ПА повинні вміти знаходити якоря, створені порожніми елементами A. але деякі ПА не роблять цього. Наприклад, деякі ПА можуть не виявляти "empty-anchor" в наступному фрагменті HTML:
Ім'я якоря - це значення атрибута name або id. коли використовується в контексті якорів. Імена якорів повинні дотримуватися таких правил:
- Унікальність: Імена якорів повинні бути унікальні в межах документа.
Імена якорів, що розрізняються тільки регістром, не можуть з'являтися в одному документі. - Збіг рядків: Порівняння ідентифікаторів фрагмента і імен якорів має виконуватися з урахуванням регістру символів.
Таким чином, наступний приклад коректний щодо збігу рядків і повинен розглядатися ПА як збіг:
Невірне використання:
Це приклад невірного використання імен, оскільки імена однакові і розрізняються лише регістром:
Хоча такий уривок HTML вірний, поведінку ПА в цьому випадку не визначено; деякі ПА можуть (некоректно) розглядати це як збіг, а інші - ні.
Посилання та якоря, певні елементом A. не можуть вкладатися; елемент A не повинен містити інших елементів A.
Оскільки ПТД визначає елемент LINK як порожній, елементи LINK також не можуть вкладатися.
Атрибут id може використовуватися для створення якоря в початковому тегу будь-якого елементу (включаючи елемент A).
Цей приклад ілюструє використання атрибута id для розміщення якоря в елементі H2. Якір пов'язаний за допомогою елемента A.
У наступному прикладі якір призначення іменований за допомогою атрибута id:
Атрибути id і name використовують загальний простір імен. Це означає, що вони не можуть одночасно визначати якір з одним ім'ям в одному і тому ж документі. Допускається використовувати обидва атрибути для визначення унікальних ідентифікаторів наступних елементів: A. APPLET. FORM. FRAME. IFRAME. IMG і MAP. Якщо обидва атрибута використані в одному елементі, їх значення повинні бути ідентичні.
ПРИКЛАД НЕПРАВИЛЬНОГО ВИКОРИСТАННЯ:
Наступний уривок HTML невірний, оскільки ці атрибути оголошують одне ім'я двічі в одному документі:
Наступний приклад показує, що id і name повинні бути ідентичними, якщо обидва з'являються в початковому тегу елемента:
У відповідності зі своєю специфікацією в ПТД HTML, атрибут name може містити символьні мнемоніки. Так, значення D # xfc; rst є вірним значенням атрибута name. як і Dürst. Атрибут id. однак, не може містити символьних мнемонік.
- Атрибут id може діяти не тільки як ім'я якоря (напр. Селектор таблиць стилів, ідентифікатор процесу і т.д.).
- деякі старі ПА не підтримують якоря, створені атрибутом id.
- Атрибут name допускає розширені імена якорів (з мнемониками).
- Якщо ПА не може виявити пов'язаний ресурс, він повинен попередити користувача.
- Якщо ПА не може ідентифікувати тип пов'язаного ресурсу, він повинен спробувати обробити його. Він повинен попередити користувача і може дати йому (користувачеві) можливість доступу для ідентифікації типу документа.
12.3 Взаємозв'язки документів: елемент LINK
Атрибути, визначені в іншому місці
Цей приклад показує, як різні визначення LINK можуть з'являтися в розділі HEAD документа. Поточний документ - "Chapter2.html". Атрибут rel специфицирует співвідношення пов'язаного документа з поточним. Значення "Index", "Next" і "Prev" роз'яснюються в розділі типи посилань.
Атрибути rel і rev додатково можуть: атрибут rel - визначати посилання вперед, а атрибут rev - посилання назад.
Розглянемо два документа - A і B.
має те ж значення, що і:
Обидва атрибута можуть бути визначені одночасно.
Якщо елемент LINK пов'язує зовнішню таблицю стилів з документом, то атрибут type визначає мову таблиці стилів, а атрибут media визначає відповідні носії уявлення. ПА можуть заощадити час, запитуючи з мережі тільки ті таблиці стилів, які можна застосувати до поточного пристрою.
Типи носія розглядаються в розділі про таблиці стилів.
- для посилань на альтернативні версії документа на інших мовах;
- для посилань на альтернативні версії документа, розроблені для інших носіїв, Наприклад, спеціальні версії для друку документів;
- для посилань на початкову сторінку колекції документів.
Нижче приклад ілюструє, як інформація про мову, типах носія і типах посилань може бути об'єднана для спрощення обробки документа пошуковою машиною.
Тут ми використовуємо атрибут hreflang. щоб повідомити пошуковій машині, де знайти датську, португальську та арабську версії документа. Зверніть увагу на використання атрибута charset для арабського варіанту підручника. Відзначте також використання атрибута lang для вказівки на те, що значення атрибута title елемента LINK. вказує на французький підручник, - французький.
У наступному прикладі ми повідомляємо пошуковій машині, де шукати версію для друку:
У наступному прикладі ми повідомляємо пошуковій машині, де шукати початкову сторінку колекції документів:
12.4 Інформація шляху: елемент BASE
href = uri [CT] Цей атрибут визначає абсолютний URI, що діє як базовий URI для дозволу (розширення) відносних URI.
Атрибут, визначений в іншому місці
При наявності, елемент BASE повинен з'являтися в розділі HEAD документа HTML перед будь-яким елементом, що посилаються на зовнішній ресурс. Специфіковані елементом BASE інформація про шляхи діє тільки на URI в тому документі, де елемент BASE з'являється.
відносний URI "../cages/birds.gif" буде розширено до:
ПА повинні обчислювати базовий URI для розширення відносних URI відповідно до [RFC1808]. розділ 3.
Нижче пояснюється, як [RFC1808] застосовується в специфіці HTML.
ПА повинні вираховувати базовий URI в такій послідовності (пріоритет від вищого до нижчого):
- Базовий URI, встановлений елементом BASE.
- Базовий URI, отриманий з метаданих під час взаємодії з протоколом, як з "шапки" HTTP (див. [RFC2616]).
- За замовчуванням, базовим вважається URI поточного документа. Не всі документи HTML мають базовий URI (напр. Повноцінний документ HTML може з'явитися в email і може не мати на себе покажчика у вигляді URI). Документи HTML вважаються помилковими, якщо вони містять відносні URI і співвідносяться з базовим URI за замовчуванням.
На додаток до сказаного, елементи OBJECT і APPLET визначають атрибути, що мають перевагу перед значеннями, встановленими елементом BASE. Див. Визначення цих елементів для отримання додаткової інформації про питання URI, що стосуються саме цих елементів.
Примітка. Для версій HTTP, що визначають "шапку" Link, ПА можуть обробляти ці "шапки" точно так же, як елементи LINK в документі. HTTP 1.1, як визначено в [RFC2616]. не містить поле "шапки" Link (див. розділ 19.6.3).