![]() |
||
|
aranea.ru || Спецификация HTML 4.01 | 12. Гиперсвязи и ссылки
12. Гиперсвязи и ссылки12.2. Элемент A12.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 -- > Начальный тег: обязательный, конечный тег: обязательный Определение атрибутов
Атрибуты, определенные в другом месте
Каждый элемент A определяет анкер
Авторы могут также создавать элемент 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:
Таким образом, гиперсвязь, определенная в файле "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 для имени анкера:
12.2.4 Недоступные и неопределяемые ресурсыСсылка на недоступные или неопределяемые ресурсы является ошибкой. Хотя устройства вывода могут по-разному обращаться с такой ошибкой, мы рекомендуем следующее поведение:
|