содержимое

Обратите внимание, что

  1. данный документ является переводом документа «Links in HTML documents» и на данный момент находится на стадии перевода;
  2. данный документ может содержать неточности, опечатки и ошибки перевода;
  3. официальным документом по данной тематике является оригинальный документ на английском языке, расположенный на сайте W3C.

12 Ссылки

Содержимое

  1. Элемент A
    1. Синтаксис имён якорей
    2. Запрещение вложенных ссылок
    3. Якоря с атрибутом id id
    4. Недоступные и неизвестные ресурсы


* * *

12.2 Элемент A

<!ЭЛЕМЕНТ A - - (%встраиваемый;)* -(A)           -- якорь -->
<!СПИСАТР A
  %атриб;                                        -- %coreattrs, %i18n, %events --
  charset     %Кодировка;       #ДОПОЛНИТЕЛЬНЫЙ  -- кодировка символов указываемого ресурса --
  type        %ТипСодержимого;  #ДОПОЛНИТЕЛЬНЫЙ  -- консультативный тип содержимого --
  name        CDATA             #ДОПОЛНИТЕЛЬНЫЙ  -- имя конца ссылки --
  href        %URI;             #ДОПОЛНИТЕЛЬНЫЙ  -- URI указываемого ресурса --
  hreflang    %КодЯзыка;        #ДОПОЛНИТЕЛЬНЫЙ  -- код языка --
  rel         %ТипыСсылок;      #ДОПОЛНИТЕЛЬНЫЙ  -- прямые типы ссылок --
  rev         %ТипыСсылок;      #ДОПОЛНИТЕЛЬНЫЙ  -- обратные типы ссылок --
  accesskey   %Символ;          #ДОПОЛНИТЕЛЬНЫЙ  -- символ быстрого доступа --
  shape       %фигура;          rect             -- для использования с клиентскими картами изображений  --
  coords      %Координаты;      #ДОПОЛНИТЕЛЬНЫЙ  -- для использования с клиентскими картами изображений --
  tabindex    ЧИСЛО             #ДОПОЛНИТЕЛЬНЫЙ  -- позиция в порядке табуляции --
  onfocus     %Скрипт;          #ДОПОЛНИТЕЛЬНЫЙ  -- элемент получает фокус --
  onblur      %Скрипт;          #ДОПОЛНИТЕЛЬНЫЙ  -- элемент теряет фокус --
  >

Открывающий тег: обязателен, Закрывающий тег: обязателен

Определения атрибутов

name = cdata [CS]
Это атрибут имени якоря, на который может ссылаться другая ссылка. Значением данного атрибута должно выступать уникальное имя якоря. Сферой действия атрибута name является текущий документ. Обратите внимание, что этот атрибут имеет такое же пространство имен, как и атрибут id.
href = uri [CT]
Этот атрибут указывает местоположение веб ресурса, определяя тем самым связь между текущим элементом (источником гиперссылки) и ресурсом, указанным в этом атрибуте.
hreflang = langcode [CI]
Этот атрибут определяет базовый язык ресурса, который указан в атрибуте href; данный атрибут может использоваться только при наличии в гиперссылке атрибута href.
type = content-type [CI]
Этот атрибут задаёт подсказку типа содержимого, который доступен по указанной ссылке. Это позволяет агентам пользователей использовать запасной механизм, который в отличии от основного не требует извлечения содержимого.
Авторы, использующие этот атрибут, берут на себя ответственность управления рисками за то, что значение атрибута может стать несовместимым с файлом указанным в ссылке.
Для ознакомления с текущим списком зарегистрированных типов содержимого, пожалуйста, обратитесь к [MIMETYPES].
rel = link-types [CI]
Этот атрибут описывает отношения текущего документа к ресурсу указанному в атрибуте href. Значением данного атрибута является разделённый пробелами список типов ссылок.
rev = link-types [CI]
Этот атрибут используется для описания обратной ссылки из ресурса, указанного в атрибуте href в текущем документе. Значением данного атрибута является разделённый пробелами список типов ссылок.
charset = charset [CI]
Этот атрибут определяет кодировку ресурса указанного в гиперссылке. Пожалуйста, обратитесь к разделу о кодировках для получения более подробной информации.

Атрибуты, определяемые в других местах

Каждый элемент A определяет якорь

  1. Содержимое элемента A определяет положение якоря.
  2. Атрибут name присваивает имя якорю, при котором элемент может не иметь адреса ресурса (смотрим также якоря с id).
  3. Атрибут href присваивает данному якорю источник якоря с помощью ровно одной ссылкой.

Авторы могут также создать элемент A без создания самой гиперссылки, то есть, не указывая href, name, или id. Значения этих атрибутов могут быть установлены позднее с помощью скриптов.

В следующем примере элемента A определяет ссылку. Источником гиперссылки является текст «Веб сайту W3C» и адрес гиперссылки «http://www.w3.org/»:

Для получения более подробной информации о W3C, пожалуйста,
обратитесь к <A href="http://www.w3.org/">Веб сайту W3C</A>. 

Эта ссылка указывает на домашнюю страницу Консорциума Всемирной Паутины. Когда пользователь активирует эту ссылку в агенте пользователя, агент пользователя загружает ресурс, в данном случае HTML документ.

Агенты пользователей обычно отображают ссылки таким образом, чтобы они были сразу же узнаваемы пользователями (подчёркивание, изменение цвета и т.д.). Точное отображение зависит от агента пользователя. Отображение так же может различаться в зависимости от того посещал ли до этого пользователь указанный ресурс или ещё нет. Возможное визуальное отображение посещённой ссылки может быть следующим:

Для получения более подробной информации о W3C, пожалуйста, 
обратитесь к Веб сайту W3C.
             ~~~~~~~~~~~~~

Для того, чтобы явно указать агентам пользователей, что указанная в ссылке страница использует определённую кодировку символов, устанавливается атрибут charset :

Для получения более подробной информации о W3C, пожалуйста, 
обратитесь к <A href="http://www.w3.org/" charset="ISO-8859-1">Веб сайту W3C</A> 

Допустим, мы создаём якорь с именем «anchor-one» в файле «one.html».

...текст до якоря...
<A name="anchor-one">Это расположение первого якоря.</A>
...текст после якоря...

Данное действие создаёт якорь вокруг текста «Это расположение первого якоря.». Как правило, содержимое такого элемента (когда элемент A создаёт только якорь) не отображается каким-либо особенным образом, когда A определяет только якорь.

Установив якорь, мы можем перейти на него с этого же или другого документа. URI адреса, которые указывают якоря, содержат символ «#», за которым следует имя якоря (идентификатор фрагмента). Вот несколько примеров таких URI адресов:

Таким образом, ссылка, созданная в файле «two.html» находящемся в том же каталоге, что и «one.html» будет ссылаться на якорь следующим образом:

...текст до ссылки...
Для получения более подробной информации, пожалуйста, 
обратитесь к <A href="./one.html#anchor-one"> первому якорю</A>.
...текст после ссылки...

Элемент A в следующем примере определяет гиперссылку (с помощью атрибута href) и создаёт именованный якорь (с помощью атрибута name) одновременно:

Я только что вернулся из отпуска! Вот 
<A name="anchor-two" 
   href="http://www.somecompany.com/People/Ian/vacation/family.png">
фотография моей семьи на озере</A>.

Данный пример содержит ссылку на другой тип веб ресурса (PNG изображение). Активация ссылка должна загрузить изображение путём получения его из Интернета (и, по возможности, отобразить его, если система поддерживает это).

Примечание. Агенты пользователей должны быть в состоянии находить якоря, созданные пустыми элементами A, но некоторые этого не делают. Например, некоторые агенты пользователей могут не найти «empty-anchor» в следующем фрагменте HTML кода:

<A name="empty-anchor"></A>
<EM>...некоторое HTML содержимое...</EM>
<A href="#empty-anchor">Ссылка на пустой якорь</A>

12.2.1 Синтаксис имён якорей

Именем якоря является значение name или id атрибута, используемого в якоре. Имена якорей должны соответствовать следующим правилам:following rules:

Таким образом, следующий пример является правильным по отношению к соответствию строк и должен рассматриваться агентами пользователей соответствующе:

<P><A href="#xxx">...</A>
...часть документа...
<P><A name="xxx">...</A>

НЕДОПУСТИМЫЙ ПРИМЕР:
Следующий пример является недопустимым в связи с уникальностью имён, поскольку два имени являются идентичными, за исключением регистра символов:

<P><A name="xxx">...</A>
<P><A name="XXX">...</A>

Несмотря на то, что приведённый ниже отрывок документа является допустимым HTML кодом, поведение агента пользователя на этот случай не определено; одни агенты пользователей могут (ошибочно) посчитать это совпадением, а другие нет.

<P><A href="#xxx">...</A>
...часть документа...
<P><A name="XXX">...</A>

Имена якорей должны быть ограничены рамками ASCII символов . Пожалуйста, обратитесь к приложению для получения дополнительной информации о не ASCII символах в URI значениях атрибутов.

12.2.2 Запрещение вложенных ссылок

Ссылки и якоря, определённые элементом A не должны быть вложенными; элемент A не должен содержать никаких других элементов A.

Поскольку DTD определяет элемент LINK как одиночный элемент, то элементы LINK не могут быть вложенными.

12.2.3 Якоря с атрибутом id

Атрибут id может быть использован в начальном теге любого элемента (включая элемент A) для создания якоря.

В данном примере показано использование атрибута id для установки якоря в элементе H2. Якорь создан с помощью элемента A.

Вы можете прочитать об этом подробнее во <A href="#section2">Втором Разделе</A>.
...далее в документе
<H2 id="section2">Второй Раздел</H2>
...далее в документе
<P>Пожалуйста, обратитесь ко <A href="#section2">Второму Разделу</A>
находящемуся выше для получения более подробной информации.

В следующем примере имя якоря задано с помощью атрибута id:

Я только что вернулся из отпуска! Вот 
<A id="anchor-two">фотография моей семьи на озере</A>.

Атрибуты id и name обладают одним и тем же пространством имён. Это означает, что они не могут одновременно определять якоря с одними и теми же именами в одном и том же документе. Допустимо дублирующее использование обоих атрибутов для указания уникального идентификатора элемента в следующих элементах: A, APPLET, FORM, FRAME, IFRAME, IMG и MAP. При этом, когда оба атрибута используются в одном элементе, их значения должны быть идентичными.

НЕДОПУСТИМЫЙ ПРИМЕР:
Следующий фрагмент HTML кода является недопустимым, так как эти атрибуты объявляют дважды одно и то же имя в одном и том же документе.

<A href="#a1">...</A>
...
<H1 id="a1">
...отрывок страницы...
<A name="a1"></A>

Следующий пример показывает, что id и name должно иметь одинаковые значения в случае, когда они оба появляются в начальном теге элемента:

<P><A name="a1" id="a1" href="#a1">...</A>

Ввиду особенностей спецификации HTML DTD, атрибут name может содержать символьные ссылки. Таким образом, значение D&#xfc;rst является допустимым значением атрибута name, так же как и значение D&uuml;rst. Атрибут id не может содержать символы ссылок (ссылки на символы).

Использовать id или name? Авторы должны рассмотреть следующие вопросы при принятии решения, что следует использовать для имени якоря ‒ атрибут id или name:

12.2.4 Недоступные и неизвестные ресурсы

Ссылки на недоступные или неизвестные ресурсы приводят к возникновениям ошибок. Хотя агенты пользователей могут по-разному обрабатывать такие ошибки, мы рекомендуем следующие действия:


* * *