htmlbook.ru - Для тех, кто делает сайты
Статьи Книги Шаг за шагом Рецепты Форум Графика для Web
Главная страница > Статьи > Рецепты CSS > Декоративное подчеркивание у ссылок

Декоративное подчеркивание у ссылок

Влад Мержевич

Текстовая версия   Добавить комментарий

Можно создать свой собственный вид подчеркивания ссылок, используя для этого графическое изображение. Рисунок подойдет не всякий, он должен обладать двумя качествами:

Высоту линии можно сделать и больше трех пикселов, если добавить к селектору A параметр padding.

На рис. 1 показно исходное изображение, которое годится для создания подчеркивания, а также его увеличенный вариант.

 

Рис. 1. Картинка для создания подчеркивания у ссылки

После создания рисунка в графическом редакторе, следует определить стиль, как показано в примере 1. Основным элементом для установки линии выступает стилевой параметр background. Это универсальный атрибут, который определяет характеристики фонового изображения, в частности, путь к графическому файл, а также смещение фона относительно левого верхнего угла элемента. В данном случае требуется только сдвинуть фоновый рисунок вниз на высоту текста, для этого используется относительная единица em, равная высоте шрифта элемента. Кроме того, чтобы рисунок повторялся только по горизонтали, добавляем к параметру background аргумент repeat-x.

Пример 1. Добавление графической линии к ссылкам

Валидный HTML
Валидный CSS
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Линия у ссылок</title>
<style type="text/css">
A {
text-decoration: none; /* Убираем подчеркивание у ссылок */
padding: 3px; /* Поля вокруг текста ссылки */
white-space: nowrap; /* Нет переноса текста */
}

A:hover {
background: url('/images/arrow.gif') /* Картинка для подчеркивания */
0 1.1em /* Смещение рисунка по горизонтали и вертикали */
repeat-x; /* Повторение фона по горизонтали */
}
</style>
</head>
<body>

<p><a href="link1.html">Ссылка 1</a></p>
<p><a href="link2.html">Ссылка 2</a></p>
<p><a href="link3.html">Ссылка 3</a></p>

</body>
</html>

Если текст ссылки достаточно длинный и занимает две и более строки, то рисунок отображается только под первой строкой. Чтобы ликвидировать эту особенность, для селектора A введен атрибут white-space со значением nowrap, он отменяет переносы в тексте и отображает его одной строкой. Учтите, что при этом возможно появление горизонтальной полосы прокрутки. Это, пожалуй, единственный недостаток данного способа, который следует принимать во внимание.

Путь к изображению указывается с помощью ключевого слова url, после которого в скобках пишется адрес рисунка. Число 0 в данном примере означает смещение изображения по горизонтали, а 1.1em — вниз по вертикали. Вы можете незначительно менять это число в ту или иную сторону, подбирая наилучший вариант в зависимости от используемого рисунка. Окончательный результат использования графической линии в ссылках показан ниже.

Ссылка 1 | Ссылка 2 | Ссылка 3

В примере у ссылок убирается подчеркивание (text-decoration: none), чтобы оно не мешало восприятию. К тому же классическая линия под текстом плохо сочетается с линией декоративной.

Интересный эффект можно получить, если использовать анимированное изображение. Например, в качестве подчеркивания добавить статичный рисунок, а при наведении на ссылку он будет меняться на другой. Для этого уже потребуется две картинки, первая показана на рис. 1, а вторая, статичная приведена на рис. 2.

 

Рис. 2. Картинка для анимации линии подчеркивания

После чего добавление линии происходит, как уже было описано в примере 1, за исключением того, что фоновый рисунок устанавливается для селектора A и псевдокласса hover (пример 2).

Пример 2. Добавление анимированной линии к ссылкам

Валидный HTML
Валидный CSS
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Линия у ссылок</title>
<style type="text/css">
A {
text-decoration: none; /* Убираем подчеркивание у ссылок */
padding: 3px; /* Поля вокруг текста ссылки */
background: url('/images/arrow1.gif') /* Путь к исходному изображению */
0 1.1em repeat-x; /* Положение фона */
}

A:hover {
background: url('/images/arrow2.gif') /* Путь к анимированному изображению */
0 1.1em repeat-x; /* Положение фона */
}
</style>
</head>
<body>

<p><a href="link1.html">Ссылка 1</a></p>
<p><a href="link2.html">Ссылка 2</a></p>
<p><a href="link3.html">Ссылка 3</a></p>

</body>
</html>
У стилевого параметра background для разных селекторов меняется только значение url. Остальные аргументы совпадают, чтобы не произошло смещения рисунков. Полученный результат данного примера показан ниже.
Ссылка 1 | Ссылка 2 | Ссылка 3
Статья опубликована: 03.10.2005 Последнее обновление: 16.04.2008

Прежде, чем писать комментарий к статье, примите во внимание следующие моменты.

  1. Не задавайте вопросы в комментариях, для этой цели предназначен форум, где вы получите нужную помощь.
  2. Удаляются любые комментарии, которые:
    • включают множество ошибок;
    • написаны безграмотно;
    • не имеют отношения к данной статье;
    • не содержат никакой полезной информации для посетителей.
  3. Для выделения отдельных слов используйте следующие команды: [b]жирный[/b], [i]курсив[/i], [color=цвет]цветной текст[/color], [tag]тег[/tag], [var]параметр[/var], [code]пример[/code].
  4. Потренироваться в написании комментариев вы можете в песочнице.

Комментарии к статье

Sam

12.04.2007

Только не забывайте про глюки IE<7, что при наведении на такую ссылку с бекграундом курсор нервно колбасит. Можно навести курсор на самый край ссылки (с любой стороны), его перед?рнет, в статусе будет нужный url, а сам курсор останется pointer.
Пользуйте вложенные div и другие при?мы. Лично меня бесит такая "колбаса".

Yoon (Latvia)

18.04.2007

Согласен Sam ... IE7 помоему на 1/4 страниц всей сети отображает бред. Ненавижу его...

comx

28.04.2007

да идея очень хорошая wink

Jana

30.04.2007

Влад, молодца!!! wink Интересный пример!

GeorgeDrive

07.06.2007

Я смотрю в ИЕ7 - все нормально выглядит и работает замечательно

LuLok

18.09.2007

IE7 стал более или менее нормальным браузером, а вот младшие версии, которыми пользуются большинство российских юзверей это ад.

Стефан

03.03.2008

Очень хорошая статья! Благодарю!

Nika

06.03.2008

Спасибо за интересную идею wink

netrino

28.03.2008

Очень интересно, как-то сам не догадывался, спасибо! smile

Добавить комментарий

Имя
Комментарий

Сохранить имя (используется cookie)

Поиск по сайту

Рецепты CSS
Разделы
Теги по теме

A
Тег A является одним из важных элементов HTML и предназначен для создания ссылок. В зависимости от присутствия параметров name или href тег A устанавливает ссылку или якорь.

CSS по теме

background
Параметр позволяет установить одновременно до пяти атрибутов стиля фона. Значения могут идти в любом порядке, браузер сам определит, какое из них соответствует нужному атрибуту.

padding
Устанавливает значение полей вокруг содержимого элемента. Полем называется расстояние от внутреннего края рамки элемента до воображаемого прямоугольника, ограничивающего его содержимое.

text-decoration
Добавляет оформление текста в виде его подчеркивания, перечеркивания, линии над текстом и мигания. Одновременно можно применить более одного стиля, перечисляя значения через пробел.

white-space
Параметр white-space устанавливает, как отображать пробелы между словами.

Copyright 2002–2008 Влад Мержевич, по всем вопросам пишите по адресу: vlad@htmlbook.ru

О сайте | Планы на будущее | Использование сайта | Борьба с ошибками | Технологии | Поддержать проект