На этот раз речь пойдёт об оформлении ссылок, имеющих атрибут target="_blank".
Зачем подобным ссылкам может понадобиться оформление, отличное от остальных ссылок? Потому, что эти ссылки открываются в новом окне, и пользователь должен быть готов к такому повороту событий.
Прежде чем продолжать, хочу отметить, что я никогда не злоупотребляю открытием ссылок в новом окне браузера и вам не советую (см. также <Об открывании новых окон>). Но иногда это действительно необходимо.
Итак, ближе к телу. Самым первым приходящим на ум решением, как же нам выделять ссылки с атрибутом target="_blank", является введение отдельного CSS стиля:
a
{
text-decoration:underline
}
a.blank
{
font-weight:bold
}
В этом случае мы просто ручками применяем стиль blank к нужным гиперссылкам, от чего те приобретают полужирное начертание.
Но это решение не годится, поскольку предполагает ручную расстановку стилей. Поэтому рассмотрим вариант, основанный на CSS2 селекторах по атрибутам и псевдоэлементах:
a {
text-decoration:underline
}
a[target="_blank"]
{
font-weight:bold
}
a[target="_blank"]:after
{
content:" (откроется в новом окне)";
}
Сие означает, что все ссылки с атрибутом target="_blank" автоматически будут иметь полужирное начертание. Кроме того, после ссылки будет указан текст (откроется в новом окне). Плохо одно - это решение не работает в Internet Explorer любой версии. Работает на данный момент только в Opera 5+ и Netscape Navigator 6+/Mozilla.
Чтобы все ссылки с атрибутом target="_blank" автоматически имели полужирное начертание и в IE, нужно использовать конструкцию expression():
a{
text-decoration:underline;
expression((this.getAttribute("target") && this.getAttribute("target")=="_blank") ? "bold" : "normal")
}
К сожалению, мы не ограничемся одной строкой JavaScript'а, если решим также эмулировать в IE CSS свойство content. Оставлю это в качестве домашнего задания тем, кому это нужно.
© Copyright 2008-2012 by KDG