:hover ⚡️ HTML и CSS с примерами кода

Псевдокласс :hover срабатывает, когда пользователь наводит на элемент мышью, но не обязательно активирует его.

Демо

Этот стиль может переопределяться другими относящимися к ссылкам псевдоклассами, такими как :link, :visited и :active, появляющимися в соответствующем порядке. Чтобы стилизировать ссылки должным образом, вам нужно вставлять правило :hover до правил :link и :visited, но после :active, как определено в LVHA-порядке: :link:visited:hover:active.

Псевдокласс :hover может применяться к любому псевдоэлементу.

Браузеры, такие как Firefox, Internet Explorer, Safari, Opera или Chrome, применяют соответствующий стиль, когда курсор (указатель мыши) наводится на элемент.

Псевдоклассы
  • :active
  • :any-link
  • :blank
  • :checked
  • :current()
  • :default
  • :defined
  • :dir()
  • :disabled
  • :empty
  • :enabled
  • :first
  • :first-child
  • :first-of-type
  • :focus
  • :focus-visible
  • :focus-within
  • :fullscreen
  • :future
  • :has()
  • :host
  • :host()
  • :host-context()
  • :hover
  • :indeterminate
  • :in-range
  • :invalid
  • :is()
  • :lang()
  • :last-child
  • :last-of-type
  • :left
  • :link
  • :local-link
  • :not()
  • :nth-child()
  • :nth-col()
  • :nth-last-child()
  • :nth-last-col()
  • :nth-last-of-type()
  • :nth-of-type()
  • :only-child
  • :only-of-type
  • :optional
  • :out-of-range
  • :past
  • :placeholder-shown
  • :read-only
  • :read-write
  • :required
  • :right
  • :root
  • :scope
  • :target
  • :target-within
  • :user-invalid
  • :valid
  • :visited
  • :where()

Синтаксис

/* Selects any <a> element when "hovered" */
a:hover {
  color: orange;
}

Спецификации

  • WHATWG HTML Living Standard
  • Selectors Level 4
  • Selectors Level 3
  • CSS Level 2 (Revision 1)

Описание и примеры

Пример 1.

Выпадающее меню

С псевдоклассом :hover вы можете создавать сложные каскадные алгоритмы. Эта техника часто используется, например, чтобы создать выпадающие меню на чистом CSS (только на CSS, без использования JavaScript). Сущность этой техники — создание правил, типа следуюшего:

CSSHTML

div.menu-bar ul ul {
  display: none;
}
div.menu-bar li:hover > ul {
  display: block;
}
<div>
  <ul>
    <li>
      <a href="example.html">Меню</a>
      <ul>
        <li>
          <a href="example.html">Ссылка</a>
        </li>
        <li>
          <a href="example.html"
            >Подменю</a
          >
          <ul>
            <li>
              <a href="example.html"
                >Подменю</a
              >
              <ul>
                <li><a href="example.html">Ссылка</a></li>
                <li><a href="example.
html">Ссылка</a></li> <li><a href="example.html">Ссылка</a></li> <li><a href="example.html">Ссылка</a></li> </ul> </li> <li><a href="example.html">Ссылка</a></li> </ul> </li> </ul> </li> </ul> </div>

Смотрите полный пример выпадающего меню, основанный на CSS.

Пример 2. Галерея полноразмерных изображений и превью

Вы можете использовать псевдокласс :hover, чтобы создать галерею изображений с полноразмерными картинками, показываемыми при наведении на них мыши. Посмотрите это демо.

Пример 3

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>hover</title>
    <style>
      a:link {
        color: #0000d0; /* Цвет ссылок */
        padding: 2px; /* Поля вокруг текста */
      }
      a:hover {
        background: #786b59; /* Цвет фона под ссылкой */
        color: #ffe; /* Цвет ссылки */
      }
    </style>
  </head>
  <body>
    <p><a href="1.
html">Ссылка 1</a></p> <p><a href="2.html">Ссылка 2</a></p> <p><a href="3.html">Ссылка 3</a></p> </body> </html>

В данном примере псевдокласс :hover применяется к ссылке (тегу <a>), при этом меняется цвет ссылки и фона под ней. Результат:

Пример 4

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>hover</title>
    <style>
      ul {
        width: 180px; /* Ширина меню */
        list-style: none; /* Для списка убираем маркеры */
        margin: 0; /* Нет отступов вокруг */
        padding: 0; /* Убираем поля вокруг текста */
        font-family: Arial, sans-serif; /* Рубленый шрифт для текста меню */
        font-size: 10pt; /* Размер названий в пункте меню */
      }
      li ul {
        position: absolute; /* Подменю позиционируются абсолютно */
        display: none; /* Скрываем подменю */
        margin-left: 165px; /* Сдвигаем подменю вправо */
        margin-top: -2em; /* Сдвигаем подменю вверх */
      }
      li a {
        display: block; /* Ссылка как блочный элемент */
        padding: 5px; /* Поля вокруг надписи */
        text-decoration: none; /* Подчеркивание у ссылок убираем */
        color: #666; /* Цвет текста */
        border: 1px solid #ccc; /* Рамка вокруг пунктов меню */
        background-color: #f0f0f0; /* Цвет фона */
        border-bottom: none; /* Границу снизу не проводим */
      }
      li a:hover {
        color: #ffe; /* Цвет текста активного пункта */
        background-color: #5488af; /* Цвет фона активного пункта */
      }
      li:hover ul {
        /* При выделении пункта курсором мыши отображается подменю */
        display: block;
      }
      .
brd { border-bottom: 1px solid #ccc; /* Линия снизу */ } </style> </head> <body> <ul> <li> <a href="russian.html">Русская кухня</a> <ul> <li><a href="linkr1.html">Бефстроганов</a></li> <li><a href="linkr2.html">Гусь с яблоками</a></li> <li> <a href="linkr3.html">Крупеник новгородский</a> </li> <li> <a href="linkr4.html" >Раки по-русски</a > </li> </ul> </li> <li> <a href="ukrainian.html">Украинская кухня</a> <ul> <li><a href="linku1.html">Вареники</a></li> <li> <a href="linku2.html">Жаркое по-харьковски</a> </li> <li> <a href="linku3.
html">Капустняк черниговский</a> </li> <li> <a href="linku4.html" >Потапцы с помидорами</a > </li> </ul> </li> <li> <a href="caucasus.html">Кавказская кухня</a> <ul> <li><a href="linkc1.html">Суп-харчо</a></li> <li><a href="linkc2.html">Лилибдж</a></li> <li><a href="linkc3.html">Чихиртма</a></li> <li> <a href="linkc4.html">Шашлык</a> </li> </ul> </li> <li> <a href="asia.html" >Кухня Средней Азии</a > </li> </ul> </body> </html>

В данном примере псевдокласс :hover добавляется к элементу списка (тег <li>) для создания двухуровневого меню.

Результат:

См. также

  • :link
  • :visited
  • :active

Ссылки

  • Псевдо-класс :hover MDN (рус.)

Как создать эффекты наложения изображения при наведении с помощью CSS?

Как создать эффекты наложения изображения при наведении с помощью CSS?

Как создать эффекты наложения изображения при наведении с помощью CSS?

Обзор

В изображении эффектов наведения CSS мы добавим другое изображение к основному изображению, чтобы другое изображение можно было увидеть, размывая основное изображение при наведении на него курсора. Мы достигнем этого, используя 5 различных типов эффектов наведения.

  • Фейд
  • Слайд-топ
  • Нижняя часть слайда
  • Слайд влево
  • Ползун вправо

Предварительные требования

Изучение основ CSS

Изучение основ HTML

Как создать эффект наложения изображения при наведении с помощью CSS?

Когда пользователь наводит курсор на элемент в CSS, этот элемент реагирует, запуская эффекты перехода. Это эффективный подход к улучшению взаимодействия с пользователем, который используется для выделения важных элементов на веб-странице. Эффект наложения изображения при наведении добавляет другой эффект или изображение поверх основного изображения. Эффект наложения CSS можно создать, используя следующее:

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

Давайте создадим базовый HTML-код, содержащий изображение.

 
 

<голова>
    <мета-кодировка="UTF-8">
    Масштабирование изображения при наведении курсора

<тело>
   <центр>
      

Вывод:

Типы эффектов при наведении в CSS

Fade

В эффекте Fade , когда мы наводим курсор на изображение, наложение появляется в верхней части изображения. Здесь мы устанавливаем ширину и высоту изображения, затем мы регулируем высоту разделения контейнера, чтобы относительно второго контейнера div был эффект наложения, который создает эффект наведения на базовое изображение.

Пример из Fade эффект:

 
 

<голова>
    <мета-кодировка="UTF-8">
    Наложение изображения
    <стиль>
    .контейнер
    {
       положение: родственник;
       ширина: 250 пикселей;
       высота: 250 пикселей;
       отображение: встроенный блок;
    }
    .изображение
    {
       дисплей: блок;
       ширина: 250 пикселей;
       высота: 250 пикселей;
    }
    .оверлей
    {
       положение: абсолютное;
       переход: все .3s легкость;
       непрозрачность: 0;
       цвет фона: #eee;
    }
    .container: наведение .overlay
    {
       непрозрачность: 1;
    }
    .эффект наложения
    {
      ширина: 250 пикселей;
      высота: 250 пикселей;
      верх:0;
      слева: 0;
      цвет фона: #00b1ba;
    }
    


<тело>
<дел>
     pixabay.com/photo/2015/04/23/22/00/tree-736885__480.jpg" alt="img" >
    <дел>
    

Результат:

Slide Top

Здесь мы создаем Slide Top эффект наложения при наведении. Здесь ширина изображения установлена ​​​​на 250 пикселей, высота установлена ​​​​на верх и ноль. Когда мы наводим курсор на изображение, эффект наведения будет постепенно перемещаться сверху вниз.

Пример эффекта Slide Top :

 
 

<голова>
    <мета-кодировка="UTF-8">
    Наложение изображения
    <стиль>
        .контейнер изображения {
            ширина: 250 пикселей;
            высота: 250 пикселей;
        }
        .контейнер {
            положение: родственник;
            ширина: 250 пикселей;
            высота: авто;
        }
        .оверлей {
            положение: абсолютное;
            переход: все 0,3 с легкости;
            непрозрачность: 0;
            цвет фона: #eee;
        }
        . container: наведение .overlay {
            непрозрачность: 1;
        }
        .overlayTop{
            ширина: 250 пикселей;
            высота: 0;
            сверху: 0;
            справа: 0 пикселей;
            цвет фона: #00b1ba;
        }
        .container: наведение .overlayTop{
        высота: 250 пикселей;
        }
    

<тело>
        <дел>
            
            <дел>
        

Результат:

Slide Bottom

Здесь мы создаем Slide Bottom эффект наложения при наведении. Здесь ширина изображения установлена ​​​​на 250 пикселей, высота установлена ​​​​на низ и ноль. Когда мы наводим курсор на изображение, эффект наведения будет постепенно перемещаться снизу вверх.

Пример эффекта Slide Bottom :

 
 

<голова>
    <мета-кодировка="UTF-8">
    Наложение изображения
    <стиль>
        . изображение {
            ширина: 250 пикселей;
            высота: 250 пикселей;
        }
        .контейнер {
            положение: родственник;
            ширина: 250 пикселей;
            высота: авто;
        }
        .оверлей {
            положение: абсолютное;
            переход: все 0,3 с легкости;
            непрозрачность: 0;
            цвет фона: #eee;
        }
        .container: наведение .overlay {
            непрозрачность: 1;
        }
        .overlayBottom{
            ширина: 250 пикселей;
            высота: 0;
            внизу: 0;
            справа: 0 пикселей;
            цвет фона: #00b1ba;
        }
        .container: hover .overlayBottom{
        высота: 255 пикселей;
        }
    

<тело>
        <дел>
            
            <дел>
        

Результат:

Слайд влево

Здесь мы создаем эффект наложения Слайд влево при наведении. Здесь высота изображения установлена ​​​​на 250 пикселей, ширина установлена ​​​​влево и равна нулю. Когда мы наводим курсор на изображение, эффект наведения будет постепенно перемещаться слева направо.

Пример эффекта Slide Left :

 
 

<голова>
    <мета-кодировка="UTF-8">
    Наложение изображения
    <стиль>
        .изображение {
            ширина: 250 пикселей;
            высота: 250 пикселей;
        }
        .контейнер {
            положение: родственник;
            ширина: 250 пикселей;
            высота: авто;
        }
        .оверлей {
            положение: абсолютное;
            переход: все 0,3 с легкости;
            непрозрачность: 0;
            цвет фона: #eee;
        }
        .container: наведение .overlay {
            непрозрачность: 1;
        }
        .overlayLeft{
            высота: 250 пикселей;
            ширина: 0;
            сверху: 0;
            слева: 0;
            цвет фона: #00b1ba;
        }
        . container: hover .overlayLeft{
        ширина: 250 пикселей;
        }
    

<тело>
        <дел>
            
            <дел>
        

Результат:

Слайд вправо

Здесь мы создаем эффект наложения Слайд вправо при наведении. Здесь высота изображения установлена ​​​​на 250 пикселей, ширина установлена ​​​​на право и ноль. Когда мы наводим курсор на изображение, эффект наведения будет постепенно перемещаться справа налево.

Пример эффекта Slide Right :

 
 

<голова>
    <мета-кодировка="UTF-8">
    Наложение изображения
    <стиль>
        .изображение {
            ширина: 250 пикселей;
            высота: 250 пикселей;
        }
        .контейнер {
            положение: родственник;
            ширина: 250 пикселей;
            высота: авто;
        }
        . оверлей {
            положение: абсолютное;
            переход: все 0,3 с легкости;
            непрозрачность: 0;
            цвет фона: #eee;
        }
        .container: наведение .overlay {
            непрозрачность: 1;
        }
        .overlayRight{
            высота: 100%;
            ширина: 0;
            сверху: 0;
            справа: 0 пикселей;
            цвет фона: #00b1ba;
        }
        .container: hover .overlayRight {
        ширина: 250 пикселей;
        }
    

<тело>
        <дел>
            
            <дел>
        

Результат:

Заключение

Как увеличить изображение при наведении курсора в HTML

Абдул Муизз

Бесплатный курс собеседования по системному проектированию

Получите полное руководство по собеседованию по системному проектированию от Educative бесплатно.

Обзор

В этом ответе мы научимся увеличивать изображение при наведении, используя HTML в сочетании с CSS. Разработчики обычно делают это, чтобы сделать свою веб-страницу более привлекательной и удобной для пользователя. Анимации, как правило, увлекательны при правильном использовании и значительно влияют на пользовательский опыт.

Вот визуализация, показывающая, чего мы пытаемся достичь:

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

Шаги

Мы можем предпринять следующие шаги для решения нашей проблемы:

  1. Сначала используйте HTML-тег , чтобы добавить изображение в код.
  2. Затем используйте псевдокласс :hover и соответствующим образом измените CSS, чтобы увеличить изображение.
  3. Мы также должны использовать transition и преобразуют свойства CSS для достижения нашей цели.

Свойство transition используется для управления скоростью анимации, применяемой с помощью свойства transform .

Принимая во внимание, что для увеличения изображения необходимо использовать свойство transform вместе со свойством scale .

Синтаксис


 // Используется для добавления изображения в код

 

Здесь атрибут src в теге используется для определения источника изображения.

Свойства CSS, упомянутые выше, изменяются с использованием приведенного ниже синтаксиса:


 //Это используется для управления скоростью анимации и ее продолжительностью. 
картинка {
переход: свойство продолжительности, временная функция, задержка | начальная | наследование;
}
//Это свойство используется для изменения свойств изображения при наведении
изображение: наведите {
преобразование: нет|функции преобразования| первоначальный|наследовать;
}
 

Примечание : Чтобы изучить свойство CSS transition , перейдите по этой ссылке.

Давайте теперь разберемся с некоторыми значениями, которые используются вместе со свойством transform :

Пример

Следующий фрагмент кода помогает нам понять, как увеличить изображение при наведении:

Примечание: Чтобы просмотреть исходный код, перейдите на вкладки HTML и CSS в виджете кода ниже.

Увеличение изображения при наведении в HTML

Объяснение

Ниже приводится объяснение кода, присутствующего в файле HTML:

Ниже приводится объяснение кода, содержащегося в файле CSS:

Примечание: ширина и height свойства CSS используются для изменения размера тега .