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

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

Internet Explorer Chrome Opera Safari Firefox Android iOS
4.0+ 7.0+ 1.0+ 4.0+ 1.0+ 1.0+ 1.0+ 1.0+

Задача

Изменить параметры рамки вокруг изображения при наведении на него курсора мыши и восстановить обратно, когда курсор уходит прочь.

Решение

За изменение стиля элемента при наведении на него указателя мыши отвечает псевдокласс :hover. Для управления стилем ссылок этот псевдокласс добавляется к селектору A.

a { стиль обычной ссылки }
a:hover { стиль ссылки при наведении на нее курсора }

Также псевдокласс :hover допускается применять аналогичным способом к изображениям, но в браузере Internet Explorer версии 6.0 и ниже этот подход работать не будет. Все потому, что эта версия Internet Explorer понимает :hover только для ссылок. Поэтому для начала рассмотрим универсальный метод, работающий во всех браузерах.

Изображение превращается в ссылку, если тег <img> поместить внутрь контейнера <a>, при этом вокруг картинок автоматически добавляется рамка, показывающая что перед нами ссылка. Вид таких рамок управляется с помощью стилевого свойства border добавляемого к конструкции a img, которая сообщает, что стили следует применять к тегу <img> расположенному внутри <a>. Параметры рамки при наведении на рисунок курсора задаются конструкцией a:hover img, как показано в примере 1.

Пример 1. Изменение цвета рамки

HTML5CSS 2.1IECrOpSaFx

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>Цвет рамки</title>
  <style>
   a img {
    border: 3px solid #53da3f; /* Рамка вокруг изображения-ссылки */
   }         
   a:hover img  {
    border: 3px solid #f26522; /* Рамка при наведении на ссылку курсора мыши */
   }
  </style>
 </head>
 <body>
  <p>
   <a href="vinnie-the-pooh.html">
    <img src="images/figure.jpg" alt="Винни-Пух" width="100" height="111"></a>
   <a href="vinnie-the-pooh.html">
    <img src="images/figure.jpg" alt="Винни-Пух" width="100" height="111"></a>
  </p>
 </body>
</html>

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

Вид рамки до и после наведения курсора на изображение

Рис. 1. Вид рамки до и после наведения курсора на изображение

Если хочется сделать изменение цвета рамки без применения ссылок, то свойство border допустимо применить непосредственно к селектору img, при этом в браузере Internet Explorer до версии 6.0 код работать не будет (пример 2).

Пример 2. Изменение параметра рамки вокруг изображения

img {
  border: 3px solid #53da3f; /* Рамка вокруг изображения */
}         
img:hover {
  border: 3px solid #f26522; /* Рамка при наведении на рисунок курсора мыши */
}

В данном примере рамка добавляется ко всем изображениям веб-страницы, если с помощью рамки требуется выделить только некоторые из них, добавьте к ним стилевые классы.

HTML по теме

Не выкладывайте свой код напрямую в комментариях, он отображается некорректно. Воспользуйтесь сервисом cssdeck.com или jsfiddle.net, сохраните код и в комментариях дайте на него ссылку. Так и результат сразу увидят.