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

Ссылки

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

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

Для управления видом различных ссылок в CSS используются псевдоклассы, которые указываются после селектора A через двоеточие. В табл. 1 приведены допустимые псевдоклассы и их описания.

Табл. 1. Псевдоклассы при работе со ссылками
Свойство Описание
A:link Определяет стиль для обычной непосещенной ссылки.
A:visited Определяет стиль для посещенной ссылки.
A:active Определяет стиль для активной ссылки. Активной ссылка становится при нажатии на нее.
A:hover Определяет стиль для ссылки при наведении на нее мышью.

Обычно использование псевдокласса link имеет тот же эффект, что и применение стиля к селектору A. Поэтому этот псевдокласс можно опустить.

Ссылки без подчеркивания

Одно из наиболее популярных применений CSS — это скрытие подчеркивания у ссылок. С позиции юзабилити не совсем верное решение, поскольку пользователь может сразу не догадаться, что текст, который он видит, является ссылкой. Все ведь уже привыкли — раз подчеркивание используется, значит это ссылка. Но при правильном применении отсутствие подчеркивания у ссылок может придать определенный эффект сайту. Часто делается, что при наведении курсора, ссылка становится подчеркнутой, меняет свой цвет или используется и тот и другой эффект одновременно (пример 1).

Пример 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:link {
text-decoration: none
; /* Убирает подчеркивание для ссылок */
}
A:visited { text-decoration: none; }
A:active { text-decoration: none; }
A:hover {
text-decoration: underline;
/* Делает ссылку подчеркнутой при наведении на нее курсора */
color: red;
/* Цвет ссылки */
}
</style>
</head>
<body>
<p><a href="link.html">Пример ссылки</a></p>
</body>
</html>

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

НАВЕДИ СЮДА КУРСОР, УВИДИШЬ РЕЗУЛЬТАТ

Подчеркнутые и надчеркнутые ссылки

Еще один пример демонстрирует использование в ссылках подчеркивания и надчеркивания одновременно. При этом эффекте тонкие линии будут появляться над и под ссылкой при наведении на нее курсора. Это достигается применением параметра text-decoration: underline overline в селекторе A:hover.

Пример 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:link { text-decoration: none; }
A:visited { text-decoration: none; }
A:active { text-decoration: none; }
A:hover {
text-decoration: underline overline; /* Ссылка подчеркнутая и надчеркнутая */
color: red; /* Цвет ссылки */
}
</style>
</head>
<body>
<p><a href="link.html">Пример ссылки</a></p>
</body>
</html>

Результат данного примера показан ниже.

НАВЕДИ СЮДА КУРСОР, УВИДИШЬ РЕЗУЛЬТАТ

Изменение размера ссылки

Пример 3 показывает, как изменять размер ссылки при наведении на нее курсора.

Пример 3. Изменение размера ссылки

Валидный 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:link { text-decoration: none; }
A:visited { text-decoration: none; }
A:active { text-decoration: none; }
A:hover {
font-size: 24px; /* Размер шрифта */
font-weight: bold; /* Жирное начертание */
color: red; /* Цвет ссылки */
}
</style>
</head>
<body>
<p><a href="link.html">Пример ссылки</a></p>
</body>
</html>

Результат данного примера показан ниже.

НАВЕДИ СЮДА КУРСОР, УВИДИШЬ РЕЗУЛЬТАТ

Изменение цвета подчеркивания

Со ссылками, при помощи CSS, можно сделать интересную особенность. Цвет ссылки, при наведении на нее курсора мыши, остается неизменным, но зато у нее появляется подчеркивание другого цвета, нежели сама ссылка (пример 4). Учтите, что данный прием не работает в некоторых браузерах.

Пример 4. Создание подчеркивание другого цвета

Валидный 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:link { color: blue; text-decoration: none; }
 A:hover { color: red; text-decoration: underline; }
.link { color: blue; }
</style>
</head>

<body>
<p><a href="link1.html"><span class="link">Ссылка</span></a></p>
</body>
</html>

Результат данного примера показан ниже.

НАВЕДИ СЮДА КУРСОР, УВИДИШЬ РЕЗУЛЬТАТ

Ссылки разных цветов

Часто возникает необходимость на одной странице использовать ссылки разных цветов и размеров. И применять для каждой области веб-страницы ссылки подходящего типа. Одни для меню, другие для текста. В этом случае создаем два или больше класса со своими параметрами и применяем их по своему усмотрению. В примере  6 достаточно поменять значения у соответствующего класса, и цвета у ссылок, где этот класс используются, изменятся автоматически.

Пример 5. Ссылки разных цветов

Валидный 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 { font-size: 14px; color: red; }
A.link1 { font-size: 12px; color: green; }
A.link2 { font-size: 14px; color: blue; }
</style>
</head>

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

Результат данного примера показан на рис. 1.

Рис. 1

Рис. 1. Разные ссылки на одной странице

Статья опубликована: 13.09.2005 Последнее обновление: 16.04.2008

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

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

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

rainman

11.04.2006

было бы здорово увидеть как это выглядит в отдельном файле css для специального класса..

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

12.04.2006

Да также и будет выглядеть, как в примерах указано.

Содержимое файла index.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link rel="stylesheet" href="site.css" type="text/css">
</head>
<body>
<a href="link1.html">Ссылка 1</a> | <a href="link2.html" class="link1">Ссылка 2</a>
</body>
</html>

Содержимое файла site.css

A { font-size: 14px; color: red }
A.link1 { color: green }
A.link1:hover { color: orange }

mujik

04.05.2006

да в принципе же можно и просто класс прописать
.menu:link {font-weight : bold}
.menu.hover {font-weight : bold}
и в ссылке
<a href="" class="menu">

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

04.05.2006

Опечатка. Надо писать .menu:hover, а не .menu.hover.

Саша из Посада

30.05.2006

Вот то, что искал. Долго и упорно. Как делать линки разных цветов. Требуется для оформления сайтов с темными фонами, где нужно, чтобы человек интуитивно догадывался, куда идти. Теперь будем знать. Спасибо

suslichek

12.08.2006

может не в тему вопрос: как управлять расположением объектов на странице?можно ли задавать расположение ссылок, заголовков, картинок и почего с помощью координат?

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

14.08.2006

Используйте абсолютное позиционирование, тогда можно задавать положение объектов относительно одного из углов окна браузера.

Сергей

08.11.2006

а как тогда описать при наведении на рисунок, кот явл ссылкой, рисунок тускнее, т.е. на него накладывается какой-то прозрачный фон?

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

09.11.2006

Прозрачность рисунка при наведении на него курсора мыши.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Пример веб-страницы</title>
<style type="text/css">
a img {
border: none;
}
a:hover img {
filter: alpha(Opacity=50); /* Прозрачность в IE */
-moz-opacity: 0.5; /* Прозрачность в Firefox */
}
</style>
</head>
<body>
<a href="#"><img src="sample.gif" alt=""></a>
</body>
</html>

Irina

27.12.2006

Спасибо огромное за труд !!!
Доступно, понятно, и очень удобная навигация по сайту.

anna

12.01.2007

нужно сделать 2 варианта ссылок: 1. ссылки белого цвета на темном фоне. посещенные ссылки не меняют свой цвет.
2. черные ссылки на белом фоне, также не должны меня цвет после посещения.

вторую часть сделать пока не могу, не могли бы вы помочь? (то, что у меня получилось, в некоторых браузерах(раннем эксплорере, например) отображаются некорректно.)

Иван Грозный

30.03.2007

Классный сайт , господа!

Boris

05.05.2007

Как растянуть ссылку на всю длинну
<td widht=150><a href=# style="background:url(image.jpg)">ссылка</a></td>

Что бы background был на всю длинну TD.

В IE вс? нормально, проболема в OPERA и Mazilla

Astro

06.05.2007

У меня такая проблема: есть код в css файле:

td.news {BEHAVIOR:url('files/tdnews.htc'); BACKGROUND-COLOR: #101001;}
td.news:hover {BACKGROUND-COLOR: gray;}

Можно ли сделать так, чтобы при наведении мыши на ячейку таблицы (td class="news") менялся цвет ссылок (a:link), нужно ли при этом писать что-то в файле files/tdnews.htc ?

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

08.05.2007

2 Boris
Надо ссылку сделать блочной. Типа <a style="display: block">...</a>.

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

08.05.2007

2 Astro
Добавьте в стили следующую строку
td.news:hover a {COLOR: red}
Работает в FF и Опера. Не действует в IE6.

Astro

08.05.2007

А можно чтоб работало и в ИЕ6?
Там вроде надо что-то прописывать в .htc файлах. Вот код files/tdnews.htc :

<public:attach event="onmouseover" onevent="color()" />
<public:attach event="onmouseout" onevent="restore()" />
<script language="JavaScript" type="text/javascript"><!--
function color() {
runtimeStyle.backgroundColor='gray';
}
function restore() {
runtimeStyle.backgroundColor='';
}
//--></script>

Это я использую, чтобы td.news:hover {BACKGROUND-COLOR: gray;} работало в ИЕ.

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

10.05.2007

IE6 не поддерживает hover для всех элементов кроме A. Писать же скрипты ради раскрашивания ссылки это моветон.

Макс

30.05.2007

Есть ссылка.
Прописаны три стиля: для просто ссылки, для ховер-ссылки и для посещенной ссылки.

Допустим, мы посетили ссылку. Стиль такой, что она стала зачеркнутой.
Хочется делать так, чтобы браузер значл что она уже посещенная, но ховер все еще работал (у посещенный ссылок стиль ховер не пашет).

че делать?

Макс

30.05.2007

Так. Как сделать ховер у посещенной ссылки я разобрался: просто нужно стиль для ховер указать позже, чем для визитед.

Далее задача сложней.

Вот стили.

a.news {
color:#000;
text-decoration:none;
}

a.news:visited {
text-decoration:line-through;
color:#ff7807;
}

a.news:hover {
color:#89A95E;
text-decoration:underline;
}

Посещенные ссылки зачеркиваются и становятся рыжими. Ховер-ссылки подчеркиваются и становятся зелеными.
Хочется сделат следующее. Чтобы непосещенная ховер-ссылка становилась подчеркнутой и зеленой, а посещенная ховер-ссылка - подчеркнутой и рыжей.

Как?

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

31.05.2007

Никак. Потому что нет такого понятия как посещенная ховер-ссылка. Ссылка либо активная, либо посещенная, либо ховер.

Viktor

20.07.2007

Классный сайт!!! Много полезного.... СПАСИБО...

Angel

31.08.2007

Ув. знатокиsmile

ситуация такова: есть меню со ссылками, нужно дабы при посещении ссылки она окрашивалась в другой цвет (красный например), и оставалась так до перехода по другой ссылке меню, с которой происходило бы тоже самое

заранее благодарен за ответ..

Просто скажу

18.09.2007

Я люблю ваш сайт! прихожу к вам уже не первый раз, и всегда мне здесь нравится. Спасибо!

Someone

19.09.2007

Как бы сделать, чтобы с одного линка письмо шло сразу на три адреса?

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

20.09.2007

Или PHP использовать или JavaScript.

john doe

16.10.2007

у меня та же проблема, что у Angel, е? вообще возможно решить с помощью css?

прохожий

17.10.2007

К 5-му примеру:

.link1 a: { font-size: 12px; color: green }
и тогда
<p><a href="link2.html">Ссылка 2</a></p>

и, соответственно,
.link1 a:link
.link1 a:active
.link1 a:visited
.link1 a:hover

john doe

17.10.2007

прохожий, это как-то, имхо, не в тему немного, особенно если у меня css отдельным файлом

serg

26.12.2007

а если у меня картинко (кнопочга) с ссылкой
как мне избавиться от дефолтных выделений и задать свой цвет или убрать линию обводки
и как это в сss прописать?
заранее благодарен

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

26.12.2007

Используйте стилевой параметр outline: none

Амир

02.02.2008

Почему не работает элемент a:active?

div#nav a:link {
background:url(../images/nav_background.png) no-repeat;}
div#nav a:hover, a:active {
width:235px;
background:url(../images/nav_background_hover.png) no-repeat;}

Спасибо!

Амир

02.02.2008

Разобрался! ) А как сделать так, что бы после нажатии поля block менялся цвет фона?

Максим

09.02.2008

Всем привет. У меня такой вопрос,
a.cont{
color: #777576;
text-decoration: none;
font-weight: 200;
font-size:11;
}

a.cont:active { text-decoration: none;
font-weight: bold;
}

при нажатие выделяется текст bold, но когда ссылка разворачивается то жирный текст пропадает. Как его зафиксировать?

серг

22.02.2008

2 максим
попробуй

а.cont{
color: цвет
text-decoration: none;
font-weight: 200;
font-size:11;
}
a.cont:active {
color: цвет;
text-decoration: none;
font-weight: 200;
font-size:11;
font-weight: bold;
}

Serj

03.03.2008

Объясните как работает это селектор A,A:visited,A:hover
На какие ссылки рапростроняются
Непойму как они действуют на ссылки без класса и с классом

Mr. Z

15.03.2008

Отличная статья! Многие приемы взял на вооружения. Но у меня есть вопрос, касательно "Пример 3. Изменение размера ссылки". Все Вы, наверное, заметили, что при наведении на такую ссылку, слегка отодвигается вниз вс? то, что расположено внизу после ссылки. Так как зафиксировать нижние элементы?

Smailuk

28.03.2008

Можно ли при помощи CSS сделать тоже что и с линками тока с рисунками-ссылками?тоесть наводиш на рисунок он меняеться,нажал на рисунок сработала ссылка и следовательно снова сменился рисунок ссылки

Слаффка

29.03.2008

2Smailuk: Да, можно.

Нужно использовать следующие свойства:

- onmouseover - наведенное состояние
- onmousedown - нажатое состояние
- onmouseout - мышка ушла с кнопки - нормальное состояние... src рисунка будет равен исходнику, нормальному состоянию кнопки-рисунка
- onmouseup - отпустили нажатую кнопку мыши, но курсор все еще на кнопке, вновь наведенное состояние... src этого свойства должен быть равен onmouseover...

Например:
<a href="#"><img src="images/btn-exit.gif" alt="" onmouseover="this.src='images/btn-exit-over.gif';" onmouseout="this.src='images/btn-exit.gif';" onmousedown="this.src='images/btn-exit-prs.gif';" onmouseup="this.src='images/btn-exit-over.gif';" /></a>

Лично я использую js, т.е. один раз написал функции и пользуюсь, выглядит так:
<a href="#"><img src="images/btn-exit.gif" alt="" onmouseover="onRollOver(this)" onmouseout="onRollOut()" onmousedown="onPress()" onmouseup="onRelease()" /></a>

Troyan

23.05.2008

А как сделать именение картинки пр наведении на не? курсора

илля

31.05.2008

Спафка спасибо! самое простое решение ))))

Snn

01.06.2008

Подскажите кто нибудь как сделать таблицу ссылкой
ну или ячейку таблицы ссылкой

делал так:
<a href="#">
<table border=1 width="100">
<tr>
<td>
<a href="#">link</a>
</td>
</tr>
</table>
</a>
но ие отказываеться такое понимать, опера и мозила понимает

Игорь...

07.06.2008

Во-первых, не понятно, зачем это ??? так делать ???
Во-вторых, таблицы делай блоками <div>...<div>.

Так оно везде работпть будет...

OverLord

15.06.2008

Так оно работать не будет... Вы блочный элемент в встраиваемый засунули. Этого делать нельзя по спецификации. Такой код валидацию не пройдет, поэтому поведение браузера с такой конструкцией непредсказуемо. Ссылками можно делать ячейки таблицы, засовывая их внутрь, но не саму таблицу.

OverLord

15.06.2008

А, собственно чего я сюда зашел :о) Нужно при наведении мыши на строку таблицы менять цвет фона всей строки. Пока сделал java-скриптом. Может у кого-то есть мысли, как сделать с помощью css?

Cвета

18.06.2008

Over,я сделала все без таблиц, и в меню тоже использовала такой прием -изменение цвета текста и фона строки. Насчет таблицы не знаю, но будет интересно узнать. З.ы. Сайт замечательный.

Lenny

19.06.2008

А как получить такое вначале все ссылки подчеркнуты, при переходе по ссылке она становится неподчеркнутой, но когда переходишь в другой раздел предыдущая задействованная ссылка снова становится подчеркнутой. Т.е. надо чтобы ссылка была неподчеркнутой только в том разделе на который она ведет. Можно ли такое сделать?

javeL

20.07.2008

Почему у меня сначало ссылки норм работают. Т.е. При наведении цвет меняется, а после нажатия на ссылку она становится одним цветом и не меняется при наведении??

javeL

20.07.2008

Код:

.username a:link {
color: #FFFFFF;
text-decoration: none;
}

.username a:hover {
color: #666666;
text-decoration: none
}

.username a:active {
color: #FFFFFF;
text-decoration: none;
}

.username a:visited {
color: #FFFFFF;
text-decoration: none;
}

javeL

20.07.2008

В IE 7 все пашет. а в Опере и FF нет

дядька

31.07.2008

javeL здесь важен порядок, в котором ты задаешь стили. поменяй стили местами a:hover должен стоять после a:visited

Дядька

31.07.2008

Влад, такой вопрос:
В ссылках нужно отменить подчеркивание фрагментарно. Например, отменить подчеркивание для искусственных пробелов.(Ссылка из нескольких строк. После переноса строки стоят исскуственные пробелы. Нужно, чтобы пустота не подчеркивалась)
Как лучше:
1. Отменить подчеркивание для ссылки вцелом, а потом вставлять подчеркивание тегами. Или
2. Оставить подчеркивание по умолчанию и отменять по месту.
Есть ли в этих методах принципиальная разница для разных браузеров (у меня только IE)?

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

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

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

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

Основы CSS
Разделы
Теги по теме

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

CSS по теме

color
Определяет цвет текста элемента.

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

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

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