Ссылки в HTML
Ссылки имеют важное значение в HTML, так как веб изначально задумывался как информационная сеть документов, связанных друг с другом.
Такая часть HTML как «Гипертекст» определяет, какой вид ссылок мы используем: гипертекстовые ссылки (или гиперссылки).
В HTML ссылки — это строчные элементы, написанные с помощью тега .
Атрибут href (hypertext reference) используется для определения цели ссылки (куда вы переходите при щелчке по ней).
Ссылки являются основным взаимодействием с веб-страницей: вы переходите от одного документа к другому, щёлкая по ссылкам.
Есть три вида цели, которые вы можете определить:
- ссылки с якорем для навигации в пределах одной страницы;
- относительные адреса, как правило, для навигации в пределах одного сайта;
- абсолютные адреса, как правило, для перехода на другой сайт.
Ссылки с якорем
Ссылки с якорем предназначены для навигации в пределах одной страницы. Предваряя значение атрибута href с #, вы можете настроить переход к элементу HTML с определённым атрибутом id .
Например, будет переходить к в том же HTML-документе. Такой тип href часто используется, чтобы вернуться обратно к верхней части страницы.
Относительные адреса
Если вы хотите определить ссылку на другую страницу того же сайта, вы можете использовать относительные адреса.
Но по отношению к чему? Ну, относительно текущей страницы.
Давайте используем простой пример, в котором папка my-first-website содержит два файла HTML.
В home.html вы хотите определить ссылку на contact.html. Поскольку эти два файла находятся в одной папке, вы можете просто написать в home.html:
На реальном сайте процесс аналогичен.
Скажем, у вас есть сайт с именем http://ireallylovecats.com, на котором у вас есть две веб-страницы: index.html и gallery.html:
В index.html вы могли бы написать следующую ссылку:
Помните: веб-сайты размещаются на компьютерах, таких же, что вы сейчас используете. Они просто называются «серверы», потому что их единственная цель состоит в том, чтобы хранить сайты. Но у них ещё есть файлы и папки, как на «обычных» компьютерах.
Абсолютные адреса
Если вы хотите поделиться с другом своей галереей кошек, то не можете просто отправить gallery.html, так как этот относительный адрес работает только для HTML-документов, которые находятся на том же компьютере или домене.
Вам нужен полный адрес вашего HTML-документа: http://ireallylovecats.com/gallery.html.
Этот URL может быть разбит на три части:
Этот абсолютный адрес является самодостаточным: независимо от того, где вы используете ссылку, она содержит всю информацию, необходимую для поиска нужного файла на правильном домене с правильным протоколом.
Вы обычно используете абсолютные адреса для определения ссылки со своего сайта на другой сайт.
В файле http://ireallylovecats.com/gallery.html, вы могли бы написать:
Относительные или абсолютные ссылки?
Поскольку эти два файла находятся в той же папке, вы можете использовать относительный адрес с помощью . Это полезно, если вы решите переместить папку: ваши ссылки не будут нарушены, так как цели ссылок относительны друг к другу, до тех пор, как вы перемещаете оба файла одновременно и держите их в одной папке. Этот относительный подход особенно полезен при переключении доменов.
Ссылки
Ссылки являются основой гипертекстовых документов и позволяют переходить с одной веб-страницы на другую. Особенность ссылок состоит в том, что она может вести не только на HTML-документ, но и на документ любого типа, причём он может размещаться совсем на другом сайте. Главное, чтобы к документу, на который делается ссылка, был доступ. Иными словами, если путь к документу можно указать в адресной строке браузера, и документ при этом будет открыт, то на него можно сделать ссылку.
Для создания ссылки необходимо сообщить браузеру, что является ссылкой, а также указать адрес документа, на который следует сделать ссылку. Оба действия выполняются с помощью элемента . Общий синтаксис создания ссылок следующий.
Атрибут href определяет адрес документа, на который следует перейти, а содержимое элемента является ссылкой. Текст, расположенный между тегами и , по умолчанию становится синего цвета и подчёркивается. В примере 1 показано создание нескольких ссылок на разные веб-страницы.
Пример 1. Добавление ссылок
В данном примере создаются две ссылки с разными текстами. При щелчке по тексту «Собаки» в окне браузера откроется документ dog.html, а при щелчке на «Кошки» — cat.html.
Результат примера показан на рис. 1. Обратите внимание, что при наведении курсора мыши на ссылку меняется вид курсора, а в строке состояния браузера отображается полный путь к документу.
Рис. 1. Вид ссылок на веб-странице
Если указана ссылка на документ, которого не существует, к примеру, его имя в атрибуте href набрано с ошибкой, то такая ссылка называется «битая». Битых ссылок следует избегать, поскольку они вводят посетителей сайта в заблуждение. Так, при щелчке по ссылке из примера 1 в браузере Firefox откроется не сам документ, а окно с предупреждением (рис. 2).
Рис. 2. Результат при открытии битой ссылки
Естественно, подобное сообщение будет различаться в браузерах, но смысл остаётся один — документ, на который ведёт ссылка, не может быть открыт. Чтобы не возникало подобных ошибок, тестируйте все ссылки на их работоспособность и сразу же устраняйте имеющиеся погрешности.
Абсолютные и относительные ссылки
Адрес ссылки может быть как абсолютным, так и относительным. Абсолютные адреса должны начинаться с указания протокола (http:// или https://) и содержать имя домена. Относительные ссылки ведут отсчёт от корня сайта или текущего документа.
Протокол для сайта можно не указывать, в таком случае ссылка будет начинаться сразу с // без протокола. Браузер сам подставит нужный протокол, на котором работает сайт. В примере 2 показано создание подобной ссылки.
Пример 2. Использование ссылки
В данном примере ссылка вида Facebook является абсолютной и ведёт на главную страницу Facebook. Учтите, что при открытии такой страницы в локальном документе произойдёт ошибка, поскольку такие ссылки работают только на веб-сервере.
Когда в адресе указывается только домен (//webref.ru) или после домена идёт имя папки (//webref.ru/css/), то веб-сервер автоматически загружает документ, обычно с именем index.html или index.php. Таким образом, полный путь к сайту будет https://webref.ru/index.php, а сокращённый — //webref.ru.
Абсолютные ссылки обычно применяются для указания на другой ресурс, впрочем, допустимо делать абсолютные ссылки и внутри текущего сайта. Однако подобное практикуется нечасто, поскольку такие ссылки достаточно длинные и громоздкие. Поэтому внутри сайта преимущественно используются относительные ссылки.
Ссылки относительно текущего документа
При создании относительных ссылок надо понимать, какое значение для атрибута href следует указывать, поскольку оно зависит от исходного расположения файлов. Рассмотрим несколько типичных вариантов.
1. Файлы располагаются в одной папке (рис. 3).
Необходимо сделать ссылку из исходного документа source.html на target.html. В таком случае код будет следующий.
2. Файлы размещаются в разных папках (рис. 4).
Когда исходный документ хранится в какой-либо папке, а ссылаемый в корне сайта, то перед именем документа в адресе ссылки следует поставить две точки и косую черту (/), как показано ниже.
Две точки в данном случае означают выйти из текущей папки на уровень выше.
3. Файлы размещаются в разных папках (рис. 5).
Теперь исходный файл находится в двух вложенных папках, и чтобы сослаться на документ в корне сайта, требуется повторить написание предыдущего примера два раза.
Аналогично обстоит дело с любым числом вложенных папок.
4. Файлы размещаются в разных папках (рис. 6).
Теперь ситуация меняется, исходный файл располагается в корне сайта, а файл, на который необходимо сделать ссылку — в папке. В этом случае путь к файлу будет следующий.
Заметьте, что никаких дополнительных точек перед именем папки нет. Если файл находится внутри не одной, а двух папок, то путь к нему записывается так.
5. Файлы размещаются в разных папках (рис. 7).
Каждый файл располагается в своей папке и чтобы перейти из одной папки в другую ссылка будет следующей.
Ссылки относительно корня сайта
Иногда можно встретить путь к файлу относительно корня сайта, он выглядит как «/folder/target.html». Так, запись Курсы означает, что ссылка ведёт в папку с именем course, которая располагается в корне сайта, а в ней необходимо загрузить файл index.html.
Опять же, такая форма записи не работает на локальном компьютере, а только под управлением веб-сервера.
Виды ссылок
Любая ссылка на веб-странице может находиться в одном из следующих состояний.
Обычная ссылка
Такое состояние характеризуется для ссылок, которые ещё не открывали. По умолчанию обычные текстовые ссылки изображаются синим цветом и с подчёркиванием.
Посещённая ссылка
Как только пользователь открывает документ, на который ведёт ссылка, она помечается как посещённая и меняет свой цвет на фиолетовый, установленный по умолчанию.
Активная ссылка
Ссылка помечается как активная при щелчке по ней. Поскольку щелчок происходит достаточно быстро, подобное состояние ссылки весьма кратковременно. Цвет такой ссылки по умолчанию красный.
Атрибут target
При переходе по ссылке документ по умолчанию открывается в текущей вкладке браузера. При необходимости это условие может быть изменено атрибутом target . Синтаксис следующий.
Такая ссылка открывается в новой вкладке или окне браузера. Где именно откроется ссылка, зависит от настроек браузера и не может быть задано через HTML. Как правило, ссылки открываются в новой вкладке.
В примере 3 показано, как сделать, чтобы ссылка открывалась в новой, а не в текущей вкладке браузера.
Пример 3. Открытие ссылки в новой вкладке
Визуально ссылки с атрибутом target и без него никак не отличаются друг от друга, поэтому следует аккуратно использовать данный атрибут, чтобы не ввести пользователя в заблуждение.
Скачивание файла
Браузер самостоятельно определяет тип документа и открывает его, если может прочитать. К примеру, при переходе по ссылке к текстовому документу он откроется в браузере, а вот zip-архив браузер открыть не может, поэтому предложит пользователю скачать его на свой компьютер. Для HTML, PDF, текстовых документов, изображений, видеофайлов и т. д. такое поведение браузера можно изменить и заставить его не открывать файл по ссылке, а скачивать его. Для этого к ссылке достаточно добавить атрибут download , как показано в примере 4.
Пример 4. Атрибут download
При использовании атрибута download меняется поведение браузера, но вид самой ссылки остаётся прежним.
Другие ссылки
Мы рассмотрели ссылки на документы по протоколу HTTP или HTTPS, но кроме этого существуют и другие ссылки — на адрес электронной почты, номер телефона и др.
Ссылка на адрес электронной почты
Создание ссылки на адрес электронной почты делается почти также, как и ссылка на веб-страницу. Только вместо протокола http указывается mailto, после которого через двоеточие идёт сам адрес почты (пример 5).
Пример 5. Ссылка на адрес электронной почты
Можно также автоматически добавить тему сообщения, присоединив к адресу электронной почты через символ вопроса (?) параметр subject с темой сообщения, как показано в примере 6.
Пример 6. Задание темы сообщения
При запуске почтовой программы поле Тема (Subject) будет заполнено автоматически.
Ссылка на Skype
Для вызова программы Skype вы можете использовать протокол callto , после которого через двоеточие следует номер телефона или логин пользователя (пример 7).
Пример 7. Ссылка на Skype
Не все браузеры поддерживают такой формат ссылок.
Ссылка на телефон
На мобильных устройствах вы можете использовать протокол tel , который позволяет использовать ссылку для набора номера и вызова абонента. Номер следует указывать в международном формате, допустимо вставлять в номер дефис или писать его слитно (пример 8).
Пример 8. Ссылка на телефон
При щелчке по такой ссылке откроется приложение для телефона и начнётся вызов абонента.
Ссылки¶
Во введении к разделу «Атрибуты» вы видели пример, показывающий, как добавляются атрибуты к открывающему тегу. В примере использовался тег , но ни сам элемент, ни конкретные атрибуты, введенные в этом примере, не обсуждались:
Атрибут href ¶
1 2 3 4 5 6 7 8 9 10 11
a href="https://machinelearningworkshop.com" >Machine Learning Workshopa > a href="#teachers">Our teachersa> a href="https://machinelearningworkshop.com#teachers" >MLW teachersa > a href="mailto:[email protected]" >Email Hala > a href="tel:8005551212">Call Hala>
Первая ссылка содержит абсолютный URL, который может быть использован на любом сайте мира для перехода на главную страницу MLW. Абсолютные URL включают в себя протокол, в данном случае https:// , и доменное имя. Если протокол записан просто как // , то это неявный протокол и означает «использовать тот же протокол, который используется в данный момент».
Документ MLW является достаточно длинным. Для экономии прокрутки можно добавить ссылку на верхнюю часть из нижней части раздела #teachers:
a href="#top">Go to top.a>
Третья ссылка объединяет оба значения: она содержит абсолютный URL, за которым следует фрагмент ссылки. Это позволяет напрямую ссылаться на раздел в заданном URL, в данном случае на раздел #teachers главной страницы MLW. Страница MLW будет загружена, а затем браузер прокрутит страницу до раздела «Учителя» без передачи фрагмента в HTTP-запросе.
Атрибут href может начинаться с mailto: или tel: для отправки электронной почты или совершения звонков, при этом обработка ссылки зависит от устройства, операционной системы и установленных приложений.
Ссылка mailto не обязательно должна содержать адрес электронной почты, но она может содержать текст cc , bcc , subject и body для предварительного заполнения письма. По умолчанию будет открыт почтовый клиент. Можно предварительно заполнить тему и тело письма без адреса электронной почты, чтобы посетители сайта могли сами приглашать своих друзей. В нашей ссылке, в нижнем колонтитуле документа, мы указываем URL-адрес для регистрации:
1 2 3 4 5
a href="mailto:?subject=Join%20me%21&body=You%20need%20to%20show%20your%20human%20that%20you%20can%27t%20be%20owned%21%20Sign%20up%20for%20Machine%20Learning%20workshop.%20We%20are%20taking%20over%20the%20world.%20http%3A%2F%2Fwww.machinelearning.com%23reg " >Tell a machinea >
Вопросительный знак ( ? ) отделяет mailto: и адрес электронной почты, если таковой имеется, от термина запроса. Внутри запроса амперсанд ( & ) разделяет поля, а знаки равенства (=) приравнивают имя каждого поля к его значению. Вся строка кодируется в процентах, что, безусловно, необходимо, если значение href не заключено в кавычки или если значения включают кавычки.
Какое приложение откроется при нажатии, касании или вводе ссылки tel , зависит от операционной системы, установленных приложений и настроек устройства. На iPhone может открыться FaceTime, приложение «Телефон» или контакты. На рабочем столе Windows может открыться Skype, если он установлен.
Существует еще несколько типов URL, таких как blobs и data URLs (см. примеры в обсуждении атрибута download ). Для защищенных сайтов (обслуживаемых по протоколу https ) можно создавать и запускать протоколы, специфичные для приложения с помощью registerProtocolHandler().
При включении ссылок, которые могут открывать другие установленные приложения, следует предупредить об этом пользователя. Убедитесь, что текст между открывающим и закрывающим тегами сообщает пользователю, какой тип ссылки он собирается активировать. Селекторы CSS-атрибутов, такие как [href^=»mailto:»] , [href^=»tel:»] и [href$=».pdf»] , могут быть использованы для нацеливания стилей на тип приложения.
Загружаемые ресурсы¶
Атрибут download должен быть включен, если href указывает на загружаемый ресурс. Значение атрибута download — это предлагаемое имя файла для сохранения ресурса в локальной файловой системе пользователя. SVGOMG, оптимизатор SVG, использует атрибут download , чтобы предложить имя файла для загружаемого блоба, который создается оптимизатором. Когда оптимизируется hal.svg , тег открытия ссылки на скачивание в SVGOMG выглядит следующим образом:
1 2 3 4
a href="blob:https://jakearchibald.github.io/944a5fc8-fdb3-458a-91ee-cdd5964b6646" download="hal.svg" >a>
Для ссылки на загружаемый ресурс в качестве значения атрибута href следует указать URL актива, а в качестве значения атрибута download — предполагаемое имя файла, которое может быть использовано в файловой системе пользователя.
Контекст просмотра¶
Каждый контекст просмотра — по сути, каждая вкладка браузера — имеет имя контекста просмотра. Ссылки могут открываться на текущей вкладке, новой неименованной вкладке, новой или существующей именованной вкладке. По умолчанию в качестве имени используется пустая строка. Чтобы открыть ссылку в новой вкладке, пользователь может щелкнуть правой кнопкой мыши и выбрать пункт «Открыть в новой вкладке». Разработчики могут сделать это принудительно, включив target=»_blank» .
Ссылка с target=»_blank» будет открываться в новой вкладке с нулевым именем, открывая новую, безымянную вкладку при каждом щелчке на ссылке. В результате может быть создано множество новых вкладок. Слишком много вкладок. Например, если пользователь щелкнет на ссылке Register Now 15 раз, то форма регистрации будет открыта в 15 отдельных вкладках. Эту проблему можно решить, задав имя контекста вкладки. Если включить в контекст атрибут target с чувствительным к регистру значением, например Register Now , то при первом щелчке на этой ссылке форма регистрации будет открыта на новой вкладке reg . Если щелкнуть на этой ссылке еще 15 раз, то регистрация будет перезагружена в контексте просмотра reg , без открытия дополнительных вкладок.
Атрибут rel управляет тем, какие виды ссылок создает ссылка, определяя связь между текущим документом и ресурсом, на который ссылается гиперссылка. Значение атрибута должно представлять собой разделенный пробелами список из одного или нескольких значений атрибута rel, поддерживаемых тегом .
Ключевое слово nofollow может быть включено, если вы не хотите, чтобы поисковые роботы переходили по ссылке. Значение external может быть добавлено, чтобы указать, что ссылка ведет на внешний URL, а не на страницу в текущем домене. Ключевое слово help указывает на то, что гиперссылка будет предоставлять контекстно-зависимую помощь. При наведении курсора на ссылку с этим значением rel вместо обычного курсора-указателя будет отображаться курсор помощи. Не используйте это значение только для получения курсора подсказки; вместо него используйте свойство CSS cursor . Значения prev и next могут использоваться для ссылок, указывающих на предыдущий и следующий документ в серии.
Подобно , смысл зависит от других атрибутов. Альтернативы RSS-каналов будут включать также атрибуты type=»application/rss+xml» или type=»application/atom+xml» , альтернативные форматы — атрибут type , а переводы — атрибут hreflang . Если содержимое между открывающим и закрывающим тегами написано на языке, отличном от языка основного документа, включите атрибут lang . Если язык документа, на который делается гиперссылка, отличается от основного языка документа, включите атрибут hreflang .
В данном примере в качестве значения href , rel=»alternate» , мы указываем URL переведенной страницы, чтобы показать, что это альтернативная версия сайта; атрибут hreflang указывает на язык перевода:
1 2 3 4 5 6
a href="/fr/" hreflang="fr-FR" rel="alternate" lang="fr-FR" >atelier d'apprentissage mechaniquea > a href="/pt/" hreflang="pt-BR" rel="alternate" lang="pt-BR" >oficina de aprendizado de máquinaa >
Если перевод на французский язык представляет собой PDF, то в атрибуте type можно указать MIME-тип PDF ресурса, на который дана ссылка. Хотя тип MIME носит чисто рекомендательный характер, информирование пользователя о том, что по ссылке будет открыт документ другого формата, всегда является хорошей идеей.
1 2 3 4 5 6 7 8
a href="/fr.pdf" hreflang="fr-FR" rel="alternate" lang="fr-FR" type="application/x-pdf" >atelier d'apprentissage mechanique (pdf).a >
Отслеживание переходов по ссылкам¶
Одним из способов отслеживания взаимодействия с пользователем является отправка пинга на URL при переходе по ссылке. Атрибут ping , если он присутствует, содержит разделенный пробелами список безопасных URL (которые начинаются с https ), которые должны быть уведомлены, или пингованы, если пользователь активирует гиперссылку. Браузер посылает POST -запросы с телом PING на URL, указанные в качестве значения атрибута ping .
Советы по работе с пользователями¶
- Всегда учитывайте пожелания пользователей при написании HTML. Ссылки должны содержать достаточно информации о ресурсе, на который они ссылаются, чтобы пользователь знал, на что он нажимает.
- Внутри текстового блока убедитесь, что внешний вид ссылок достаточно отличается от окружающего текста, чтобы пользователи могли легко отличить ссылки от остального содержимого, причем цвет не является единственным средством отличия текста от окружающего содержимого.
- Всегда включайте стили фокуса; это позволит клавиатурным навигаторам знать, где они находятся при переходе по вкладкам вашего содержимого.
- Содержимое между открывающим и закрывающим является доступным именем ссылки по умолчанию и должно информировать пользователя о ее назначении или цели. Если содержимое ссылки представляет собой изображение, то доступным именем является описание alt . Независимо от того, является ли доступное имя атрибутом alt или подмножеством слов в блоке текста, оно должно содержать информацию о назначении ссылки. Текст ссылки должен быть более описательным, чем «нажмите здесь» или «подробнее»; это важно для пользователей программ чтения с экрана и для результатов поисковых систем!
- Не включайте в ссылку интерактивное содержимое, такое как или . Не вкладывайте ссылку в или . Хотя HTML-страница все равно будет отображаться, вложение фокусируемых и кликабельных элементов внутри интерактивных элементов создает неприятные впечатления у пользователей.
- Если присутствует атрибут href , то нажатие клавиши Enter при фокусировке на элементе активизирует его.
- Ссылки не ограничиваются HTML. Элемент a можно использовать и в SVG, формируя ссылку с помощью атрибутов href или xlink:href .
Ссылки и JavaScript¶
Свойство links возвращает коллекцию HTMLCollection , соответствующую элементам a и area , имеющим атрибут href .
1 2 3 4 5 6 7 8
let a = document.links[0]; // obtain the first link in the document a.href = 'newpage.html'; // change the destination URL of the link a.protocol = 'ftp'; // change just the scheme part of the URL a.setAttribute( 'href', 'https://machinelearningworkshop.com/' ); // change the attribute content directly
В этом разделе вы узнали все о ссылках. Следующий раздел посвящен спискам, которые нам необходимо изучить, чтобы мы могли группировать их для создания списков ссылок (также известных как навигация).
Создание гиперссылок
Гиперссылки очень важны — именно они делают Интернет сетью. В этой статье представлен синтаксис, необходимый для создания ссылки, а также обсуждаются лучшие практики обращения со ссылками.
Предварительные требования: | Базовое знание HTML, описанное в разделе «Начало работы с HTML». Знакомство с форматированием текста, которое описано в разделе «Основы редактирования текста в HTML». |
---|---|
Задача: | Научиться эффективно использовать гиперссылки и связывать несколько файлов вместе. |
Что такое гиперссылка?
Гиперссылки — одно из самых интересных нововведений Интернета. Они были особенностью Сети с самого начала, но именно они превращают Интернет в Интернет. Они позволяют нам связывать наши документы с любым другим документом (или ресурсом), с которым мы хотим. С их помощью мы также можем связывать документы с их конкретными частями, и мы можем сделать приложения доступными на простом веб-адресе (сравните это с локальными приложениями, которые должны быть установлены, и другими такими же вещами). Почти любой веб-контент может быть преобразован в ссылку, так что когда вы кликаете по ней (или иным образом активируете), она заставляет веб-браузер перейти на другой веб-адрес (URL).
Примечание: URL-адрес может указывать на файлы HTML, текстовые файлы, изображения, текстовые документы, видео и аудиофайлы и все остальное, что может жить в Интернете. Если веб-браузер не знает, как отображать или обрабатывать файл, он спросит вас, хотите ли вы открыть файл (в этом случае обязанность открытия или обработки файла передаётся в соответствующее локальное приложение на устройстве) или загрузить файл (в этом случае вы можете попытаться разобраться с ним позже).
Например, домашняя страница BBC содержит большое количество ссылок, которые указывают не только на множество новостей, но и на различные области сайта (меню), страницы входа / регистрации (пользовательские инструменты) и многое другое.
Анатомия ссылки
Простая ссылка создаётся путём обёртывания текста (или другого содержимого, смотрите Ссылки-блоки), который вы хотите превратить в ссылку, в элемент , и придания этому элементу атрибута href (который также известен как гипертекстовая ссылка, или цель), который будет содержать веб-адрес, на который вы хотите указать ссылку.
p> Я создал ссылку на a href="https://www.mozilla.org/ru/">домашнюю страницу Mozillaa>. p>
Это дало нам следующий результат:
Я создал ссылку на домашнюю страницу Mozilla.
Блочные ссылки
Как упоминалось ранее, вы можете превратить любой элемент в ссылку, даже блочный элемент. Если вы хотите превратить заголовок в ссылку, то оберните его в элемент ( ):
a href="https://developer.mozilla.org/ru/"> h1>MDN Web Docsh1> a> p> Документируем веб-технологии, включая CSS, HTML и JavaScript, с 2005 года. p>
This turns the heading into a link:
Добавляем информацию с помощью атрибута title
Другим атрибутом, который вы можете добавить к своим ссылкам, является — title . Он предназначен для хранения полезной информации о ссылке. Например, какую информацию содержит страница или другие вещи, о которых вам нужно знать. Например:
p> Я создал ссылку на a href="https://www.mozilla.org/ru/" title="Лучшее место для поиска дополнительной информации о миссии Mozilla и о том, как внести свой вклад" >домашнюю страницу Mozilla a >. p>
Вот что получилось (описание появится, если навести курсор на ссылку):
Примечание: Описание из атрибута title отображается только при наведении курсора, значит люди, полагающиеся на клавиатурные элементы управления для навигации по веб-страницам, будут испытывать трудности с доступом к информации, которую содержит title. Если информация заголовка действительно важна для удобства использования страницы, то вы должны представить её таким образом, который будет доступен для всех пользователей, например, поместив её в обычный текст.
Активное изучение: создаём собственную ссылку
Время упражнения: мы хотели бы, чтобы вы создали любой HTML-документ в текстовом редакторе на своём компьютере (наш базовый пример подойдёт.)
- Попробуйте добавить в тело HTML один или несколько абзацев или другие элементы, о которых вы уже знаете.
- Теперь превратите некоторые фрагменты документа в ссылки.
- Добавьте ссылкам атрибут title .
Краткое руководство по URL-адресам и путям
Чтобы полностью понять адреса ссылок, вам нужно понять несколько вещей про URL-адреса и пути к файлам. Этот раздел даст вам информацию, необходимую для достижения этой цели.
URL-адрес (Uniform Resource Locator, или единый указатель ресурса, но так его никто не называет) — это просто строка текста, которая определяет, где что-то находится в Интернете. Например, домашняя страница Mozilla находится по адресу https://www.mozilla.org/ru/ .
URL-адреса используют пути для поиска файлов. Пути указывают, где в файловой системе находится файл, который вас интересует. Давайте рассмотрим простой пример структуры каталогов (смотрите каталог creating-hyperlinks.)
Корень структуры — каталог creating-hyperlinks . При работе на локальном веб-сайте у вас будет один каталог, в который входит весь сайт. В корне у нас есть два файла — index.html и contacts.html . На настоящем веб-сайте index.html был бы нашей домашней, или лендинг-страницей (веб-страницей, которая служит точкой входа для веб-сайта или определённого раздела веб-сайта).
В корне есть ещё два каталога — pdfs и projects . У каждого из них есть один файл внутри — project-brief.pdf и index.html , соответственно. Обратите внимание на то, что вы можете довольно успешно иметь два index.html файла в одном проекте, пока они находятся в разных местах файловой системы. Многие веб-сайты так делают. Второй index.html , возможно, будет главной лендинг-страницей для связанной с проектом информации.
-
Тот же каталог: Если вы хотите подключить ссылку внутри index.html (верхний уровень index.html ), указывающую на contacts.html , вам просто нужно указать имя файла, на который вы хотите установить ссылку, так как он находится в том же каталоге, что и текущий файл. Таким образом, URL-адрес, который вы используете — contacts.html :
p> Хотите связаться с конкретным сотрудником? Найдите подробную информацию на нашей a href="contacts.html">странице контактовa>. p>
p> Посетите мою a href="projects/index.html">домашнюю страницу проектаa>. p>
p> Ссылка на a href="../pdfs/project-brief.pdf">краткое описание моего проектаa>. p>
Примечание: вы можете объединить несколько экземпляров этих функций в сложные URL-адреса, если необходимо, например: ../../../сложный/путь/к/моему/файлу.html .
Фрагменты документа
Можно ссылаться на определённую часть документа HTML (известную как фрагмент документа), а не только на верхнюю часть документа. Для этого вам сначала нужно назначить атрибут id элементу, с которым вы хотите связаться. Обычно имеет смысл ссылаться на определённый заголовок, поэтому это выглядит примерно так:
h2 id="Почтовый_адрес">Почтовый адресh2>
Затем, чтобы связаться с этим конкретным id , вы должны включить его в конец URL-адреса, которому предшествует знак решётки, например:
p> Хотите написать мне письмо? Используйте наш a href="contacts.html#Почтовый_адрес">почтовый адресa>. p>
Вы даже можете использовать ссылку на фрагмент документа отдельно для ссылки на другую часть того же документа:
p> a href="#Почтовый_адрес">Почтовый адрес компанииa> можно найти в нижней части этой страницы. p>
Абсолютные и относительные URL-адреса
Два понятия, с которыми вы столкнётесь в Интернете, — это абсолютный URL и относительный URL:
Указывает на местоположение, определяемое его абсолютным местоположением в Интернете, включая протокол и доменное имя. Например, если страница index.html загружается в каталог, называемый projects , который находится внутри корня веб-сервера, а домен веб-сайта — http://www.example.com , страница будет доступна по адресу http://www.example.com/projects/index.html (или даже просто http://www.example.com/projects/ ), так как большинство веб-серверов просто ищет целевую страницу, такую как index.html , для загрузки, если он не указан в URL-адресе.).
Абсолютный URL всегда будет указывать на одно и то же местоположение, независимо от того, где он используется.
Указывает расположение относительно файла, с которого вы связываетесь, это больше похоже на случай, который мы рассматривали в предыдущей секции. Для примера, если мы хотим указать со страницы http://www.example.com/projects/index.html на PDF файл, находящийся в той же директории, наш URL может быть просто названием файла — project-brief.pdf — никакой дополнительной информации не требуется. Если PDF расположен в поддиректории pdfs внутри каталога projects , относительная ссылка будет pdfs/project-brief.pdf (аналогичный абсолютный URL был бы http://www.example.com/projects/pdfs/project-brief.pdf .).
Относительный URL будет указывать на различные места, в зависимости от того, где находится файл, в котором он используется, — например, если мы переместим наш файл index.html из каталога projects в корневой каталог веб-сервера (верхний уровень, не в директорию) , то относительный URL pdfs/project-brief.pdf будет вести на http://www.example.com/pdfs/project-brief.pdf , а не на http://www.example.com/projects/pdfs/project-brief.pdf .
Советуем вам основательно разобраться в этой теме!
Практика написания хороших ссылок
При написании ссылок рекомендуется следовать некоторым правилам. Давайте рассмотрим их.
Используйте чёткие формулировки описания ссылок
На вашей странице легко добавить ссылки. Но этого не совсем достаточно. Мы должны сделать наши ссылки доступными для всех читателей, независимо от их возможностей и инструментов просмотра страницы, которые они предпочитают. Например:
- Пользователям программ читающих с экрана нравится переходить по ссылкам на странице, читая адрес ссылки в тексте.
- Поисковые системы используют текст ссылки для индексирования файлов, поэтому рекомендуется включать ключевые слова в текст ссылки, чтобы эффективно описывать, куда ведёт ссылка.
- Пользователи часто бегло просматривают страницу, не читая каждое слово, и их глаза будут привлечены к тексту, который выделяется, например, ссылки. Им будет полезно описание того, куда ведёт ссылка.
Взгляните на этот пример:
Хороший текст ссылки: Скачать Firefox
p>a href="https://firefox.com/"> Скачать Firefox a>p>
Плохой текст ссылки: Нажми сюда, чтобы скачать Firefox
p>a href="https://firefox.com/"> Нажми сюда a> чтобы скачать Firefoxp>
- Не пишите URL-адрес как часть текста ссылки. URL-адреса выглядят сложными, а звучат ещё сложнее, когда программы чтения с экрана читают их по буквам.
- Не пишите «ссылка» или «ссылки на» в тексте ссылки — это лишнее. Программы чтения с экрана сами проговаривают, что есть ссылка. На экране пользователи также видят, что есть ссылка, потому что ссылки, как правило, оформлены в другом цвете и подчёркнуты (подчёркивая ссылки, вы соблюдаете правила хорошего тона, поскольку пользователи привыкли к этому).
- Следите за тем, чтобы текст ссылки был как можно короче. Длинный текст ссылки особенно раздражает пользователей программ чтения с экрана, которым придётся услышать всё, что написано.
- Минимизируйте случаи, когда несколько копий одного и того же текста ссылок указывает на разные страницы. Это может вызвать проблемы для пользователей программ чтения с экрана, которые часто вызывают список ссылок — несколько ссылок, помеченных как «нажмите здесь», «нажмите здесь», «нажмите здесь», будут путать.
Используйте относительные ссылки, где это возможно
Из прочитанного выше, вы можете подумать, что всё время использовать абсолютные ссылки — хорошая идея; в конце концов, они не ломаются, когда страница перемещается. Тем не менее, лучше использовать относительные ссылки везде, где это возможно, в пределах одного сайта (при ссылке на другие сайты необходимо использовать абсолютную ссылку):
- Во-первых, гораздо проще прописать в коде относительные URL-адреса, как правило, они намного короче абсолютных URL-адресов, что значительно упрощает чтение кода
- Во-вторых, использование относительных URL-адресов эффективней по следующей причине. Когда вы используете абсолютный URL-адрес, браузер начинает поиск реального местоположения сервера запрашивая адрес у Domain Name System (DNS; также прочтите Как работает web), затем он переходит на этот сервер и находит файл, который запрашивается. С относительным URL-адресом проще: браузер просто ищет файл, который запрашивается на том же сервере. Используя абсолютные URL-адреса вместо относительных, вы постоянно нагружаете свой браузер дополнительной работой.
Создавая ссылки на не HTML ресурсы — добавляйте описание
Когда вы создаёте ссылку на файл, нажав на который можно загрузить документ PDF или Word или открыть просмотр видео, прослушивание аудио файла или перейти на страницу с другим, неожиданным для пользователя результатом (всплывающее окно или загрузка Flash-фильма), добавляйте чёткую формулировку, чтобы уменьшить путаницу. Отсутствие описания может раздражать пользователя. Приведём пример:
- Если вы используете соединение с низкой пропускной способностью и вдруг нажмёте на ссылку без описания, начнётся загрузка большого файла.
- Если у вас нет установленного Flash-плеера и вы нажмёте ссылку, то внезапно перейдёте на страницу с Flash-контентом.
Посмотрите на примеры, чтобы увидеть, как добавить описание:
p> a href="http://www.example.com/large-report.pdf"> Скачать отчёт о продажах (PDF, 10MB) a> p> p> a href="http://www.example.com/video-stream/"> Посмотреть видео (видео откроется в отдельном окне, HD качество) a> p> p> a href="http://www.example.com/car-game"> Играть в гонки (необходим Flash) a> p>
Используйте атрибут download, когда создаёте ссылку
Когда создаёте ссылку на файл, который должен быть загружен, а не открыт в браузере, можете использовать атрибут download , чтобы создать имя файла по умолчанию для сохранения . Приведём пример ссылки для загрузки браузера Firefox 39:
a href="https://download.mozilla.org/?product=firefox-39.0-SSL&os=win&lang=en-US" download="firefox-39-installer.exe"> Скачать Firefox 39 для Windows a>
Активное изучение: создание меню навигации
Для этого упражнения мы хотим, чтобы вы создали ссылки на страницы в меню навигации в многостраничном сайте. Это один из распространённых способов создания сайта: на каждой странице используется одна и та же структура страниц, включая одно и то же меню навигации, поэтому при нажатии ссылок создаётся впечатление, что вы остаётесь в одном месте: меню остаётся на месте, а контент меняется.
Вам нужно скачать или создать следующие страницы в одном каталоге (Смотрите navigation-menu-start):
- Добавьте неупорядоченный список в указанном месте в любом html-файле. Список должен состоять из имён страниц (index, projects и т.д.). Меню навигации обычно представляет собой список ссылок, поэтому создание неупорядоченного списка семантически верно.
- Создайте ссылки каждому элементу списка, ведущие на эти страницы.
- Скопируйте созданное меню в каждую страницу.
- На каждой странице удалите только ссылку, которая указывает на эту же страницу (на странице index.html удалить ссылку index и так далее). Дело в том, что, находясь на странице index.html, нам незачем видеть ссылку в меню на эту же страницу. С одной стороны, нам незачем ещё раз переходить на эту же страницу, с другой, такой приём помогает визуально определить, смотря на меню, в какой части сайта мы находимся.
Когда закончите задание, посмотрите, как это должно выглядеть:
Примечание: Если не удаётся сделать, или вы не уверены, что сделали верно, посмотрите наш вариант navigation-menu-marked-up.
Ссылки электронной почты
Можно создавать ссылки или кнопки, которые при нажатии открывают новое исходящее сообщение электронной почты, а не ссылку на ресурс или страницу. Для этого используется элемент и mailto: — адрес почты.
Самыми простыми и часто используемыми формами mailto: являются subject, cc, bcc и body; дальше прописываем адрес электронной почты. Например:
a href="mailto:nowhere@mozilla.org">Отправить письмо для nowherea>
В результате получим ссылку вида: Отправить письмо для nowhere.
Сам адрес электронной почты не является обязательным для заполнения. Если оставить это поле пустым (в поле href оставить только «mailto:»), откроется новое исходящее сообщение почтовой программой, в поле получателя будет пусто. Это можно использовать для кнопки «Поделиться».
Особенности и детали
Помимо адреса электронной почты, вы можете предоставить другую информацию. Фактически, любые стандартные поля для отправки почты могут быть добавлены к указанному вами адресу mailto . Часто используемыми из них являются «subject», «cc» и «body» (которые не являются истинным полем заголовка, но позволяют указать дополнительную информацию для нового сообщения электронной почты). Каждое поле и его значение задаются в качестве условия запроса.
Вот пример который включает cc(кому отправить копию сообщения, все получатели письма видят список тех кто это письмо получит), bcc(скрытый адрес получателя, никто из получателей не будет видеть полный список получателей письма), subject(тема письма) и body(текст сообщения):
a href="mailto:nowhere@mozilla.org?cc=name2@rapidtables.com&bcc=name3@rapidtables.com&subject=The%20subject%20of%20the%20email &body=The%20body%20of%20the%20email"> Send mail with cc, bcc, subject and body a>
Примечание: Значение каждого поля должно быть написано в URL-кодировке (то есть с непечатаемыми символами и пробелами percent-escaped). Обратите внимание на знак вопроса (?) для разделения основного адреса и дополнительных полей, амперсанд (&) для разделения каждого поля mailto: URL. Для этого используется стандартное описание URL запроса. Прочтите о методе GET, чтобы лучше понимать описание URL запроса.
Вот несколько примеров использования mailto URLs:
- mailto:
- mailto:nowhere@mozilla.org
- mailto:nowhere@mozilla.org,nobody@mozilla.org
- mailto:nowhere@mozilla.org?cc=nobody@mozilla.org
- mailto:nowhere@mozilla.org?cc=nobody@mozilla.org&subject=This%20is%20the%20subject
Заключение
Этой информации достаточно для создания ссылок! Вы вернётесь к ссылкам позже, когда начнёте изучать стили. Дальше вы рассмотрите семантику текста и более сложные и необычные возможности, которые будут полезны при создании контента сайта. В следующей главе будет рассматриваться продвинутое форматирование текста.