Работа с внешними ссылками
Спорный вопрос в дизайне веб-страниц – открытие ссылок в новых окнах.
Комитет по стандартизации методов по всему Интернету, W3C оставляет это на усмотрение пользователя. Посетитель может открыть в том же окне, в новом окне или во вкладке.
Идентификация внешних ссылок.
Имеется в виду, что ссылка на другой сайт будет больше отличаться от внутренней, если она будет отмечена стрелкой. Это отличие заметно, если вы поместите мышь над ссылкой. Это реализуется с помощью псевдо-элемента “:after“. При этом фон внешней ссылки наплывает за полсекунды слева направо, для этого используется псевдо-элемент “:before“.
Пример ссылки на внешний веб-сайт
Код выглядит это следующим образом:
<a class="extern" href="#exlink" title="Внешняя ссылка: Внешний вид страницы: пример ссылки на внешний веб-сайт" > Пример ссылки на внешний веб-сайт </a>
И необходимые строки в CSS :
a.extern { position: relative; color: #0972b4; display: inline-block; vertical-align: bottom; letter-spacing: .2em; } a.extern:before { position: absolute; content: ''; z-index: 1; width: 0; height: 100%; border-radius: 5px; background: rgba(52,73,94,.2); transition: .5s; } a.extern:hover:before, a.extern:focus:before { width: 100%; } a:link.extern:after { content: '➤'; } a:visited.extern:after { content: '➢'; } a:hover.extern:after, a:active.extern:after, a:focus.extern:after { content: '➔'; }
Раньше нужно было стрелку прописывать как отдельную картинку, а теперь то же самое можно сделать с помощью CSS свойства “content”. И сэкономить ещё один запрос к веб-серверу, так называемый HTTP-Request.
Осторожно! Ограничения при использовании псевдо-класса “:visited”
Уже давно было заявлено о прекращении поддержки CSS псевдо-класса“:visited” по соображениям безопасности, и теперь некоторые браузеры уже перестроились.
Если вы уже посетили веб-сайт или ссылку на другую страницу внутри домена, псевдо-класс “:visited” позволяет в Internet Explorer 8 изменять цвет и размер символов. В Internet Explorer 11 можно изменить только цвет и Firefox игнорирует псевдо-класс “:visited” полностью!
В этом примере “:visited” ещё присутствует, но рано или поздно эта информация из CSS исчезнет.К сожалению, посещенные страницы больше не будут выделены!
Открытые внешней ссылки в новом окне
Если в ходе работы над проектом, вы в какой-то момент решили, что внешние страницы должны открываться в новом окне, то вам придется пересмотреть все страницы. Это, конечно, много работы, но есть более простой способ.
Со следующими фрагментом кода все внешние ссылки, автоматически будут снабжены target=”_blank”. В этом случае, селектор атрибута будет запрашивать “HTTP: //” и исключать собственный домен.
$(function () { $("a[href*="http://"]:not ([href*="http://www.webdesign-klamonfra.de/"])") .attr({target: "_blank"}); } )
Теперь все ссылки на внешние ресурсы откроются в новом окне!