ИНФОРМАЦИЯ,    ДИЗАЙН,    ПЕРЕВОДЫ,    РЕКЛАМА   .   .   .
w a p - с а й т
Информационный портал
Сегодня:  
admin@aranea.ru
+79068922256

  aranea.ru || Спецификация HTML 4.01 | 12. Гиперсвязи и ссылки

12. Гиперсвязи и ссылки

12.2. Элемент A

12.2.1. Синтаксис имен анкеров
12.2.2. Вложенные гиперсвязи не допустимы
12.2.3. Анкеры с атрибутом id
12.2.4. Недоступные и неопределяемые ресурсы
<!ELEMENT A - - (%inline;)* -(A)       -- anchor -->
<!ATTLIST A
  %attrs;                              -- %coreattrs, %i18n, %events --
  charset     %Charset;      #IMPLIED  -- char encoding of linked resource --
  type        %ContentType;  #IMPLIED  -- advisory content type --
  name        CDATA          #IMPLIED  -- named link end --
  href        %URI;          #IMPLIED  -- URI for linked resource --
  hreflang    %LanguageCode; #IMPLIED  -- language code --
  rel         %LinkTypes;    #IMPLIED  -- forward link types --
  rev         %LinkTypes;    #IMPLIED  -- reverse link types --
  accesskey   %Character;    #IMPLIED  -- accessibility key character --
  shape       %Shape;        rect      -- for use with client-side image maps --
  coords      %Coords;       #IMPLIED  -- for use with client-side image maps --
  tabindex    NUMBER         #IMPLIED  -- position in tabbing order --
  onfocus     %Script;       #IMPLIED  -- the element got the focus --
  onblur      %Script;       #IMPLIED  -- the element lost the focus --
  >

Начальный тег: обязательный, конечный тег: обязательный

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

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

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

  • id, class
  • lang, dir
  • title
  • style
  • shape и coords
  • onfocus, onblur, onclick, ondblclick, onmousedown, onmouseup, onmouseover, onmousemove, onmouseout, onkeypress, onkeydown, onkeyup
  • target
  • tabindex
  • accesskey

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

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

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

В примере, указанном ниже, элемент A определяет ссылку. Анкер источника – текст "W3C Web site", а анкер назначения - "http://www.w3.org/":

For more information about W3C, please consult the 
<A href="http://www.w3.org/">W3C Web site</A>. 

Эта ссылка определяет домашнюю страницу консорциума W3C ("the World Wide Web Consortium"). Когда пользователь активирует эту ссылку, то устройство вывода будет извлекать ресурс, в данном случае это - HTML-документ.

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

For more information about W3C, please consult the W3C Web site.
                                                   ~~~~~~~~~~~~

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

For more information about W3C, please consult the 
<A href="http://www.w3.org/" charset="ISO-8859-1">W3C Web site</A> 

Предполагаем, что мы определяем анкер, названный "anchor-one" в файле "one.html".

...text before the anchor...
<A name="anchor-one">This is the location of anchor one.</A>
...text after the anchor...

Это создает анкер вокруг текста "This is the location of anchor one.". Обычно, содержание элемента A не представляется каким-то специальным способом, когда A определяет только анкер.

Определив анкер, мы можем связать его с тем же самым документом или с другим. Адреса URI, которые такие определяют анкеры, содержат символом "#" после имени анкера (идентификатор фрагмента). Ниже приведено несколько примеров таких URI:

  • Абсолютный: http://www.mycompany.com/one.html#anchor-one
  • Относительный URI: ./one.html#anchor-one or one.html#anchor-one
  • Когда гиперсвязь определяется в том же документе: #anchor-one

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

...text before the link...
For more information, please consult <A href="./one.html#anchor-one"> anchor one</A>.
...text after the link...

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

I just returned from vacation! Here's a
<A name="anchor-two" 
   href="http://www.somecompany.com/People/Ian/vacation/family.png">
photo of my family at the lake.</A>.

Этот пример содержит гиперссылку на другой тип Web-ресурса (изображение PNG). Активация ссылки приведет к извлечению изображения из сети Web (и, возможно, выводу его на дисплей, если система сконфигурирована подобающим образом).

Обратите внимание. Устройства вывода должны быть способны обнаруживать анкеры, созданные элементами A, но некоторые не способны к этому. Например, некоторые устройства вывода могут не обнаружить "пустой анкер" ("empty-anchor") в следующем HTML-фрагменте:

<A name="empty-anchor"></A>
<EM>...some HTML...</EM>
<A href="#empty-anchor">Link to empty anchor</A>

12.2.1 Синтаксис имен анкеров

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

  • Уникальность: Имена анкеров должны быть уникальными внутри документа. Имена анкеров, которые отличаются только регистром, не должны появляться в одном и том же документе.
  • Строковое согласование: Сравнение между идентификаторами фрагментов и именами анкеров должно выполняться строго (чувствительно к регистру).

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

<P><A href="#xxx">...</A>
...more document...
<P><A name="xxx">...</A>
НЕКОРРЕКТНЫЙ ПРИМЕР:

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

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

Хотя следующий отрывок является корректным для языка HTML, поведение устройства вывода не определено; некоторые устройства вывода могут (некорректно) рассмотреть это согласование, а другие нет.

<P><A href="#xxx">...</A>
...more document...
<P><A name="XXX">...</A>

Имена анкеров должны быть ограничены использованием только символов ASCII.

12.2.2 Вложенные гиперсвязи не допустимы

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

Так как файл DTD определяет элемент LINK как пустой, то эти элементы (LINK) тоже не могут вкладываться друг в друга.

12.2.3 Анкеры с атрибутом id

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

Следующий пример иллюстрирует использование атрибута id для позиционирования анкера в элементе H2. Анкер связан через элемент A.

You may read more about this in <A href="#section2">Section Two</A>.
...later in the document
<H2 id="section2">Section Two</H2>
...later in the document
<P>Please refer to <A href="#section2">Section Two</A> above
for more details.

Следующий пример дает имя анкеру назначения атрибутом id:

I just returned from vacation! Here's a
<A id="anchor-two">photo of my family at the lake.</A>.

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

НЕКОРРЕКТНЫЙ ПРИМЕР:

Следующий отрывок является некорректным для языка HTML, так как эти атрибуты объявляют одно и то же имя дважды в одном и том же документе для разных элементов.

<A href="#a1">...</A>
...
<H1 id="a1">
...pages and pages...
<A name="a1"></A>

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

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

Из-за своей спецификации в файле HTML DTD, атрибут name может содержать специальные символы. Таким образом, значение D & # x f c ; r s t является корректным значением атрибута name, как D & u u m l ; r s t. Атрибут id, с другой стороны, не может содержать специальные символы.

Что использовать, id или name? Авторам следует рассмотреть следующие вопросы, при использовании id или name для имени анкера:

  • Атрибут id может действовать больше, чем имя анкера (например, селектор стилевых таблиц, идентификатор обработки и т.д.).
  • Некоторые старые устройства вывода не поддерживают анкеры, созданные с атрибутом id.
  • Атрибут name позволяет обогатить имена анкеров (используя примитивы).

12.2.4 Недоступные и неопределяемые ресурсы

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

  • Если устройство вывода не может локализовать связанный ресурс, оно должно сообщить об этом пользователю.
  • Если устройство вывода не может идентифицировать тип связанных ресурсов, то оно должно все же попытаться обработать его. Оно должно сообщать пользователю об этом, чтобы позволить пользователю вмешаться и идентифицировать тип документа.

← Назад | Вперед →
Copyright © 2006 -  aranea.ru