Css after hover: css — How can I write a ‘:hover’ condition for ‘a:before’ and ‘a:after’?

Содержание

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). Сущность этой техники — создание правил, типа следуюшего:

CSS

div.menu-bar ul ul {
  display: none;
}
div.menu-bar li:hover > ul {
  display: block;
}

HTML

<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 :hover. Поговорим о псевдоклассе :hover… | by Саша Азарова | NOP::Nuances of Programming

.hummingbird:hover {}

:hover — псевдокласс, определяющий стиль элемента при наведении на него указателя.

Проблемы с псевдоклассом :hover начались еще с тех пор, как на сенсорных устройствах был установлен первый браузер. Конечно, проблемы пытались решить и решали, но полноценным решением это вряд ли можно было назвать. Однако с новыми медиазапросами (Media Queries) 4 уровня проблема, кажется, решена окончательно.

“Хм … а в чем, собственно говоря, заключается проблема?”

Допустим, вы просто добавили псевдокласс :hover к элементу вашей веб-страницы. Следовательно, когда пользователь наводит курсор мыши на этот элемент, то он активирует некоторые правила CSS и меняет свой внешний вид. Легче легкого!

Пример элементов с :hover на десктопе. Источник: https://proper-hovering.glitch.me

Однако на сенсорном экране с псевдоклассом :hover возникают проблемы: после того, как нажатие выполнено, эффект наведения закрепляется на элементе. Более того, это происходит, даже тогда, когда элемента не касались напрямую. Например, когда пользователь в процессе прокрутки страницы задевает элемент и его отображение меняется, согласно CSS правилам :hover.

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

Подобное поведение элементов может запутать пользователя и подобная практика будет отрицательно сказываться на вашем продукте. Эту проблему необходимо как-то решить.

“Не может же быть, чтобы эту проблему не пытались как-то решить…”

Да, определенные решения выдвигались. Лучшим из них было использование JavaScript для определения наличия сенсорного экрана и последующее применение класса к body . После чего, добавляя к какому-либо элементу псевдокласс :hover, будет происходить явное обращение к этому классу.

body.nontouch nav a:hover {
background: yellow;
}

Однако подобное решение имеет несколько недостатков:

  1. Разработчик может создать JS-сценарий обнаружения, который работает сегодня, но что с ним будет через пару месяцев, когда появится какая-то новая технология? Ноутбуки с сенсорными экранами? Съемные сенсорные экраны? Apple Pencil? Никто не хотел бы беспокоиться об этом во время разработки.
  2. Использование основанного на компонентах JS-фреймворка с инкапсулированными стилями неудобно. Так как каждый раз, когда активируется :hover, стили этого элемента должны ссылаться на этот глобальный класс.
  3. Это решение может работать по-разному на разных устройствах. Возможно, что для специальных устройств придется придумывать специальное решение. Однако должен быть стандартизированный способ, работающий на всех устройствах.

Media Queries Level 4

Медиазапросы великолепны. Они в одиночку внедрили адаптивный веб-дизайн и их по праву считают краеугольным камнем современной мобильной веб-разработки. Организация W3C добавила функции взаимодействия с мультимедиа в качестве рекомендации для L4 Media Queries, которые мы можем использовать для распознавания устройств с сенсорным экраном.

Четвертый уровень медиазапросов включает в себя: hover,any-hover, pointer, any-pointer. Они предоставляют информацию о возможности применения hover и типе пользовательского ввода. Например, @media (hover: hover) будет true, если hover элемента активируется курсором мыши. А @media (any-pointer: coarse) будет true, если какой-либо ввод имеет ограниченную точность (например, касание по сенсору). Эти мультимедийные функции предоставляют достаточно информации для правильного взаимодействия с hover.

Одна из проблем заключается в том, что медиазапросы на данный момент являются рекомендательными. Это означает, что они могут измениться или даже быть удалены в любое время. Помните об этом при работе с ними. На данный момент это определенно работает, и мы возлагаем большие надежды на эти спецификации. Тот факт, что все основные браузеры реализовали эти запросы (кроме, конечно, IE), делает наше будущее еще более оптимистичным.

«Так что же делать?»

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

С точки зрения UX, мы ищем решение, которое было бы наиболее приятным для пользователя.

Это означает, что на устройствах с сенсорным экраном не будут использоваться hover-эффекты. Особый случай здесь — это ноутбуки с сенсорными экранами. Однако мы можем предполагать, что на таких ноутбуках большую часть времени используется тачпад или компьютерная мышь. Даже если hover-эффект зависает, пользователь может легко использовать мышь / сенсорную панель, чтобы устранить проблему. К счастью, ноутбуки со съемными сенсорными экранами переходят в режим планшета после отсоединения. А это значит, что медиазапрос все правильно обработает и никаких проблем не возникнет.

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

Перевод статьи Mezo Istvan: Finally, a CSS only solution to :hover on touchscreens

Решение проблемы с CSS :hover

:hover — псевдокласс, определяющий стиль элемента при наведении на него указателя.

Проблемы с псевдоклассом :hover начались еще с тех пор, как на сенсорных устройствах был установлен первый браузер. Конечно, проблемы пытались решить и решали, но полноценным решением это вряд ли можно было назвать. Однако с новыми медиазапросами (Media Queries) 4 уровня проблема, кажется, решена окончательно.

“Хм … а в чем, собственно говоря, заключается проблема?”

Допустим, вы просто добавили псевдокласс :hover к элементу вашей веб-страницы. Следовательно, когда пользователь наводит курсор мыши на этот элемент, то он активирует некоторые правила CSS и меняет свой внешний вид. Легче легкого!

Пример элементов с :hover на десктопе. Источник: https://proper-hovering.glitch.me

Однако на сенсорном экране с псевдоклассом :hover возникают проблемы: после того, как нажатие выполнено, эффект наведения закрепляется на элементе. Более того, это происходит, даже тогда, когда элемента не касались напрямую. Например, когда пользователь в процессе прокрутки страницы задевает элемент и его отображение меняется, согласно CSS правилам :hover.

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

Пример элементов с :hover на сенсорном экране (эмуляция). Источник: https://proper-hovering.glitch.me

Подобное поведение элементов может запутать пользователя и подобная практика будет отрицательно сказываться на вашем продукте. Эту проблему необходимо как-то решить.

“Не может же быть, чтобы эту проблему не пытались как-то решить…”

Да, определенные решения выдвигались. Лучшим из них было использование JavaScript для определения наличия сенсорного экрана и последующее применение класса к body . После чего, добавляя к какому-либо элементу псевдокласс :hover, будет происходить явное обращение к этому классу.

body.nontouch nav a:hover {
    background: yellow;
}

Однако подобное решение имеет несколько недостатков:

  1. Разработчик может создать JS-сценарий обнаружения, который работает сегодня, но что с ним будет через пару месяцев, когда появится какая-то новая технология? Ноутбуки с сенсорными экранами? Съемные сенсорные экраны? Apple Pencil? Никто не хотел бы беспокоиться об этом во время разработки.
  2. Использование основанного на компонентах JS-фреймворка с инкапсулированными стилями неудобно. Так как каждый раз, когда активируется :hover, стили этого элемента должны ссылаться на этот глобальный класс.
  3. Это решение может работать по-разному на разных устройствах. Возможно, что для специальных устройств придется придумывать специальное решение. Однако должен быть стандартизированный способ, работающий на всех устройствах.
Media Queries Level 4

Медиазапросы великолепны. Они в одиночку внедрили адаптивный веб-дизайн и их по праву считают краеугольным камнем современной мобильной веб-разработки. Организация W3C добавила функции взаимодействия с мультимедиа в качестве рекомендации для L4 Media Queries, которые мы можем использовать для распознавания устройств с сенсорным экраном.

Четвертый уровень медиазапросов включает в себя: hover,any-hover, pointer, any-pointer. Они предоставляют информацию о возможности применения hover и типе пользовательского ввода. Например, @media (hover: hover) будет true, если hover элемента активируется курсором мыши. А @media (any-pointer: coarse) будет true, если какой-либо ввод имеет ограниченную точность (например, касание по сенсору). Эти мультимедийные функции предоставляют достаточно информации для правильного взаимодействия с hover.

Одна из проблем заключается в том, что медиазапросы на данный момент являются рекомендательными. Это означает, что они могут измениться или даже быть удалены в любое время. Помните об этом при работе с ними. На данный момент это определенно работает, и мы возлагаем большие надежды на эти спецификации. Тот факт, что все основные браузеры реализовали эти запросы (кроме, конечно, IE), делает наше будущее еще более оптимистичным.

«Так что же делать?»

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

С точки зрения UX, мы ищем решение, которое было бы наиболее приятным для пользователя.

Это означает, что на устройствах с сенсорным экраном не будут использоваться hover-эффекты. Особый случай здесь — это ноутбуки с сенсорными экранами. Однако мы можем предполагать, что на таких ноутбуках большую часть времени используется тачпад или компьютерная мышь. Даже если hover-эффект зависает, пользователь может легко использовать мышь / сенсорную панель, чтобы устранить проблему. К счастью, ноутбуки со съемными сенсорными экранами переходят в режим планшета после отсоединения. А это значит, что медиазапрос все правильно обработает и никаких проблем не возникнет.

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

Перевод статьи Mezo Istvan: Finally, a CSS only solution to :hover on touchscreens

Читайте также

Селекторы псевдоклассов и псевдоэлементов в CSS (hover, first-child, first-line и другие), отношения между тегами Html кода

Обновлено 10 января 2021 Просмотров: 145 136 Автор: Дмитрий Петров

Здравствуйте, уважаемые читатели блога KtoNaNovenkogo. ru. Сегодня мы продолжим тему изучения таблицы каскадных стилей и наполнять новыми материалами справочник.

Тема селекторов в CSS, которая была начата в предыдущей статье, осталась еще не завершенной, ибо мы рассмотрели только пять из семи возможных типов (тега и класса (class), Id, универсальный и атрибутов) и на очереди остались селекторы псевдоклассов и псевдоэлементов.


Отношения между тегами Html кода — дерево документа

Давайте начнем с псевдоклассов. Тут, правда, сначала нужно будет сделать отступление. Любой браузер, получая документ с любым языком разметки, тут же начинает его разбирать. Модуль, отвечающий в браузере за это дело, обычно называют парсер — он разбирает код, исправляет ошибки и формирует так называемое дерево.

Результат работы парсера любого браузера можно увидеть с помощью некоторых плагинов или расширений для этих обозревателей. Например, все тот же незаменимый плагин для Firefox под названием Firebug показывает это самое дерево документа:

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

Таких взаимоотношений может быть всего три вида (очень похоже на построение генеалогического дерева — отношение между родственниками):

  1. Предки и потомки. Например, для тега, показанного на приведенном выше примере, все остальные элементы являются потомками. Для них же всех он является прародителем — предком. Т.е. все, что находится внутри — это потомки. А предками будут являться все элементы, внутри которых данный элемент лежит.
  2. Родитель и ребенок — в цепочке предки-потомки всегда есть два ближайших звена, которые будут отвечать понятиям родитель и ребенок. Т.е. у любого Html элемента есть один родитель (ближайший предок) и в то же время у него могут быть или не быть один или же несколько детей.
  3. Сестринские (братские) отношения — к ним относятся элементы, у которых один общий родитель.

Само по себе название «псевдоклассы» обозначает то, что специально в коде ни у каких элементов (тегов) такие классы (значения для атрибута Class) никто не прописывал, но у этих самых элементов периодически могут возникать определенные динамические состояния, для которых и были придуманы селекторы псевдоклассов.

Селекторы псевдоклассов — hover, focus, first-child и другие

Например, селекторы Link и Visited во всех браузерах могут использоваться только для оформления гиперссылок:

Link подразумевает под собой не посещенную ссылку (по которой пользователь еще не переходил), а Visited — посещенную. Таким образом вы можете настроить, например, изменение цвета для уже посещенных пользователем ссылок, ну или еще что-то другое (задать визуальное состояние для всех посещенных гиперссылок). Естественно, что посещенные будут учитываться именно для данного конкретного браузера и до момента очистки его истории.

Синтаксис написания селекторов псевдоклассов заключается в проставлении двоеточия после названия Html элемента, для которого вы его используете (a:visited).

a:visited {color:red;}

Следующие три селектора (active, hover и focus) могут использоваться для любых тегов:

Active соответствует клику левой кнопки мыши по тому элементу в Html коде, название которого вы прописали перед этим псевдоклассом в селекторе (в нашем примере это тег гиперссылки A). Как только левую клавишу пользователь отожмет — псевдокласс active исчезнет.

p:active {color:red}

В этом случае, при наведении курсора мыши на любой абзац текста и щелчке по левой кнопке мыши, мы увидим, что цвет этого параграфа изменится на красный. После отжатия кнопки цвет абзаца опять вернется к принятому по умолчанию. Т.е. данный псевдокласс active динамичен и будет работать абсолютно для любых тэгов (например, для контейнеров Div и т.п.). При клике на этом элементе он может изменить свое визуальное оформление в соответствии с нашими пожеланиями.

Hover — позволяет изменять визуальное оформление любого элемента в Html коде при наведении на него курсора мыши. При отведении курсора визуальное оформление элемента вернется к используемому по умолчанию.

p:hover {color:red}

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

Псевдоклассы active и hover в браузере IE 6 работают только для элементов гиперссылок, а focus не работает вообще ни в IE 6, ни в IE 7.

Последний псевдокласс называется first-child (первый ребенок, в переводе).

:first-child {color:red}

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

First-child в IE 6 не работает, что печально.

Селекторы псевдоэлементов — first-line (letter), after и before

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

По самому слову «псевдоэлементы» понятно, что таких тегов в Html коде нет. На данный момент псевдоэлементов всего четыре и они приведены на расположенном чуть выше рисунке. Наверное, понятно по самому названию, что

first-line будет указывать на первую линию, а first-letter — на первую букву.

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

p:first-line {color:red}

Что это даст? Во всех параграфах на веб странице первые строки текста окрасятся в красный цвет. Для простоты подключим CSS к языку Html с помощью тега style и пропишем соответствующее свойство с использованием псевдоэлемента first-line в селекторе параграфа:

Тогда, как мы и планировали, все первые строки в абзацах окрасятся в красный цвет:

Ну, а с помощью first-letter можно сделать, например, так называемую буквицу (когда первая буква в абзаце отличается большим размером и цветом). Для этого можно будет прописать следующие CSS плавила для данного селектора псевдоэлемента:

p:first-letter {font-size:5em; float:left; color:red}

Про Em, Ex, пиксели и другие размерности в CSS мы с вами уже говорили. Исходный код с добавленными свойствами тогда будет выглядеть так:

А сама вебстраница с буквицей, созданной с помощью селектора first-letter, будет выглядеть так:

Два оставшихся псевдоэлемента after и before нужны для формирования контента на лету. Давайте посмотрим на примере:

p:after {
content: " KtoNaNovenkogo. ru";
color:red;
}

В результате, в конце каждого абзаца на вебстранице автоматически добавится тот фрагмент, который мы указали в CSS свойстве «content» (оно используется только для псевдоэлементов after и before) и этот фрагмент будет окрашен в красный цвет:

Если бы мы вместо «after» использовали бы «before», то дополнительный контент был бы добавлен внутри каждого абзаца на странице, но уже перед его содержимым. Напрашивается вопрос — а для чего это можно использовать на практике?

Оказывается, с помощью этих псевдоэлементов можно, например, создать сложную нумерацию вида «5.2.13». Обычными средствами Html этого сделать нельзя, а с использованием before — можно.

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

Но при этом имеет место быть сложный код CSS стилей с использованием, естественно, псевдоэлементов after и before:

Все очень здорово, но, к сожалению, after и before не поддерживаются в браузерах IE 6 и IE 7. Увы и ах. В следующей статье мы поговорим про комбинации CSS селекторов и их приоритетность.

Удачи вам! До скорых встреч на страницах блога KtoNaNovenkogo.ru

Как написать условие :hover для:before и a:after в CSS?

Посмотреть обсуждение

Улучшить статью

Сохранить статью

  • Уровень сложности: Easy
  • Последнее обновление: 18 мая, 2022

  • Читать
  • Обсудить
  • Посмотреть обсуждение

    Улучшить статью

    Сохранить статью

    Селекторы :before и :after в CSS используются для добавления содержимого до и после элемента. :hover — это псевдокласс, а :before и :after — псевдоэлементы. В CSS псевдоэлементы пишутся после псевдокласса.

    Синтаксис: 

     a:hover::before {
        // Свойство CSS
    }
    а: наведение :: после {
        // Свойство CSS
    } 

    В CSS3 двойное двоеточие (::) используется для обозначения псевдоэлемента. Для IE8 или старше используется одно двоеточие (синтаксис CSS2).

    Пример 1: В этом примере используется условие :hover для:before и a:after в элементе.

    html

    < html >

        < head >

            < title >

                :hover condition for a:before

                и a:после

            название >

          

    9 5 010 9 0 5 010 < Стиль >

    A: Hover :: Перед {

    Содержание: «До -»;

    }

    A: Hover :: After {

    Содержание: "-after";

              }

           стиль >

        head >

         

        < body >

           < a href="# " > Наведите курсор сюда a >

        body >

    1 html0052 >

    Выход:

    HTML перед перемещением мыши. для a:before и a:after в элементе.

    html

    < html >

         < head >

             < title >

                 :hover condition for a:before

                 and a:after

    Название >

    < стиль >

                 a:hover::before {

                                                

                     цвет фона: зеленый;

    }

    A: Hover :: After {

    Содержание: "-after";

                     цвет фона: зеленый;

                 }

             style >

         head >

         

         < body >

             < a href="#" > GeeksForGeeks a >

         body >

    html >

    Output:

    HTML Before Mouse move over:

      

    After Mouse move over :

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


    Почему :hover:after действительно, а :after:hover нет? Селекторы псевдоклассов CSS и псевдоэлементов

    На днях я попытался добавить стиль подчеркивания к элементу при наведении, и это не сработало. Я не осознавал, что стилизую псевдоэлемент, созданный :after . Я предпочел вариант с одним двоеточием :после . Он так же действителен, как :: после , жизнь коротка, а я ленивый разработчик. Мой :after:hover не работал, и я расстроился.

    Устранение неполадок заставило меня задуматься, могу ли я объединить другие псевдоэлементы, такие как ::first-letter и ::first-line ? А если нет, то почему? И почему оба :after и :after в любом случае законны?

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

    Почему :after Valid CSS?

    Во-первых, давайте немного пробежимся по истории CSS. Впервые я изучил CSS в начале 2010-х, когда CSS 2.1 был «Стандартом», а одиночные двоеточия бродили по земле. В то время как в CSS 1 были указаны селекторы псевдоклассов, такие как :link и :visited , в CSS 2 были введены псевдоэлементы, такие как :before и :after .

    В то время меньше внимания уделялось дифференциации между псевдоэлементами и псевдоклассами — они оба использовали синтаксис с одним двоеточием. Именно тогда я совершил ошибку, объединив их в единую концепцию псевдоселектора.

    Синтаксис с двумя двоеточиями для псевдоэлементов был введен в CSS Selector 3. Из-за принципа совместимости в Интернете селекторы псевдоэлементов из CSS 2.1, включая :после , :до , :first-line и : первая буква — действительны и сегодня. Однако новые псевдоэлементы, такие как ::selection , не имеют соответствующей версии с одним двоеточием — убедитесь сами, выбрав каждую строку в приведенном ниже примере:

    См. перо Без названия Шимин Чжан (@shimin-zhang) на КодПене.

    Разница между псевдоклассом и псевдоэлементом

    Псевдокласс и псевдоэлемент — это селекторы CSS, которые имеют доступ к информации за пределами того, что предоставляет HTML DOM — отсюда и префикс «псевдо». Возьмите селектор :hover , он должен знать текущее местоположение курсора пользователя.

    Хотя псевдоэлементы воздействуют на DOM-подобный объект, они создают чистую конструкцию CSS и фактически не влияют на DOM. У них также есть дополнительное двоеточие для обозначения этой разницы. Тот факт, что ::after element не является фактическим узлом DOM, имеет последствия для доступности, их содержимое не существует для программ чтения с экрана и должно быть только декоративным.

    Читатели думают: «А как насчет :disabled и :nth-child() ?» - ты поймал меня. Предыдущие два абзаца не совсем верны, некоторые селекторы псевдоклассов являются скорее «трюками» или «ярлыками» — я бы хотел, чтобы W3C создал для них новое имя, чтобы сделать различие четким.

    Повторим, концептуальное различие между ними заключается в том, что селекторы псевдоклассов воздействуют на существующий элемент DOM, используя некоторую внешнюю информацию, в то время как псевдоэлемент создает новый элемент, «на самом деле не существующий» только для механизма рендеринга. 9Псевдоселектор 0051 :visited можно использовать только для выбора существующих элементов привязки. В то время как ::first-line создают элементы, которые иначе не могут существовать с данной структурой DOM — отсюда и название.

    Вот пример: псевдоэлемент ::first-line создается путем разделения второго элемента на два, чтобы изменить цвет только его первого слова.

    См. перо Без названия Шимин Чжан (@shimin-zhang) на КодПене.

    Как комбинировать псевдоклассы с псевдоэлементами

    Что знание различий между псевдоклассами и псевдоэлементами говорит нам об их использовании?

    Во-первых, селекторы псевдоклассов воздействуют на элементы и могут быть объединены в цепочку, как и любые реальные селекторы . class . :visited:hover так же действителен, как .visited.hover .

    С другой стороны, селекторы псевдоэлементов нельзя использовать взаимозаменяемо с селектором элемента . Вы не можете связать их. Псевдоэлементы не являются реальными элементами — они не могут быть целью селектора. p::first-line::first-letter недействителен, поскольку ::first-line не является настоящим элементом DOM. Используйте псевдоэлементы только в конце строки селектора.

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

    Та же логика применяется при объединении селекторов псевдокласса и псевдоэлемента. Псевдокласс приводит к элементам DOM, поэтому можно добавлять псевдоэлементы — почему p:hover:after является допустимым CSS. Меняем порядок, и мы применяем псевдокласс к несуществующему элементу — почему p:after:hover недействителен.

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

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

    Правило 1: Псевдоклассы можно использовать как настоящие селекторы .class и использовать свободно. p:hover.class работает.

    Правило 2: Псевдоэлементы всегда должны быть в самом конце вашего селектора, они не могут быть объединены в цепочку, потому что они не выбирают настоящие элементы DOM.

    Правило 3: Не используйте варианты псевдоэлементов с одним двоеточием — даже если это проще — слишком легко ошибиться, когда они используют один и тот же синтаксис. Кроме того, теперь вы должны помнить, что :после работает, но не :выбор .

    Перед тем, как я уйду, вот Code Pen с некоторыми примерами псевдоклассов и псевдоэлементов. Используйте его, чтобы проверить свои знания. Прочитайте CSS для каждого div и посмотрите, соответствует ли его поведение вашим ожиданиям!

    См. перо Псевдоэлементы и псевдоселекторы Шимин Чжан (@shimin-zhang) на КодПене.

    Если вам понравился этот пост, вам также может быть интересно узнать, как создавать API-интерфейсы стилей с помощью пользовательских свойств CSS или когда вам следует использовать единицу CSS px в 2022 году.

    Как использовать CSS для стилизации элементов — TheSassWay.com

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

    Элементы класса в Css могут отображаться как псевдоэлементы аналогично кнопкам в HTML. Когда пользователь взаимодействует с элементом с помощью указывающего устройства, псевдокласс css: hover соответствует, но не активирует его. The::afterSelector можно использовать для вставки строки после содержимого. Когда вы наводите курсор на элемент, для его выбора используется селектор: hoverselector. Его можно использовать для чего угодно, включая ссылки, благодаря селектору: hover. Свойство pointer-events можно изменить, чтобы убрать эффект наведения с элемента. Каждый элемент в псевдоклассе имеет особое особое состояние, которое должно быть указано с помощью значения псевдокласса.

    Когда пользователь взаимодействует с элементом с помощью указывающего устройства, псевдокласс CSS:hover соответствует; однако это не обязательно активирует его. Указатель мыши (стрелка) является наиболее распространенным способом его запуска в большинстве случаев.

    Когда вы нажимаете на элемент, селектор :hover выбирает его с помощью мыши. Селектор :hover также можно использовать для других элементов, а не только для ссылок. Селекторы :link можно использовать для оформления ссылок на непосещенные страницы, селекторы :visited можно использовать для оформления ссылок на посещенные страницы, а селекторы :active можно использовать для оформления ссылок на активные страницы.

    Когда указатель мыши находится над элементом, для его стилизации используется псевдокласс CSS: hover selector. Его можно использовать на различных поверхностях.

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

    Как добавить наведение перед CSS?

    Кредит: stackoverflow.com

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

    Вы можете использовать селектор: hover для выбора элементов, когда вы наводите на них указатель мыши. Селектор ссылок: можно использовать для оформления ссылок на непосещенные страницы, селектор ссылок: посещенные — для ссылок на посещенные страницы, а селектор ссылок: активные — для ссылок на активные страницы. Параметр:hover должен быть объявлен как в IE для работы с другими элементами.

    Псевдоэлементы имеют ограниченное количество взаимодействий

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

    Что такое :: до и :: после в Css?

    Кредит: www.seowebdesignllc.com

    Селектор ::before вставляет содержимое выбранных элементов перед содержимым самих выбранных элементов. Свойство содержимого можно использовать для указания типа вставляемого содержимого. Поместите что-нибудь после содержимого после селекторов ::exit.

    Если вы не хотите перемещать незаменяемые элементы, вы можете использовать псевдоэлементы CSS для вставки содержимого до и после них. Этот метод можно использовать для отображения элемента на веб-странице, который может быть неправильно отформатирован. В этой статье я покажу вам семь разных примеров создания красивых эффектов с помощью ::before и ::after. Чтобы отобразить текст атрибута alt изображения, необходимо выполнить функцию attr(). Какую замечательную работу проделал этот парень. Chrome, по крайней мере, способен отображать такой контент. Firefox, с другой стороны, немного мягкий.

    В качестве быстрого исправления используйте селектор атрибутов (например, img[alt], который соответствует типу атрибута alt) для выбора похожих стилей. Мы можем изменить стиль элементов по умолчанию, используя псевдоэлемент ::before. Чтобы сделать список более упорядоченным, мы можем использовать смайлики в свойстве контента. Тумблер также можно создать, оставив флажок HTML пустым. Изображениями можно манипулировать, чтобы они выглядели отличительными или соответствовали единому дизайну. Используя свойство CSS z-index, мы можем создать градиент отрицательного значения поверх изображения. Мы применяем градиент над изображением, как и в предыдущем примере, но на этот раз мы используем градиент.

    Когда переключатели включены, position: absolute on::before и::after скрывает. Из-за своей страсти к этому Линн Фишер сделала карьеру, создавая потрясающие дизайны, включающие только один элемент. С другой стороны, искусство CSS Дайаны Смит использует псевдоэлементы в нескольких местах для достижения реалистичных эффектов, подобных живописи.

    Разница между Css2 и Css3 ::after Псевдоэлементы

    Псевдоэлемент:after и псевдоэлемент:after являются конструкциями в CSS2.

    Как добавить эффект наведения к псевдоэлементу?

    Псевдоэлемент — это элемент, которого нет в дереве документа. Псевдоэлементы используются для стилизации определенных частей элемента.
    Чтобы добавить эффект наведения к псевдоэлементу, вы можете использовать псевдокласс :hover. Псевдокласс :hover используется для выбора элементов, находящихся в состоянии наведения.

    Что такое :: After In Css?

    В CSS ::after — это псевдоэлемент, который используется для вставки содержимого после элемента. Содержимое указывается в свойстве содержимого псевдоэлемента ::after.

    Элемент псевдоэлемента, также известный как элемент псевдоселектора, — это ключевое слово, которое добавляется к селектору, чтобы вы могли указать определенные элементы. С помощью этих ресурсов вы можете значительно улучшить базу веб-кода, а также создать аккуратные и мощные макеты. Хотя существует относительно короткий список псевдоэлементов CSS, важно ознакомиться с ними как можно раньше. Свойство содержимого псевдоэлементов имеет решающее значение. По умолчанию установлено значение none. Если вы попытаетесь стилизовать элемент без добавления этого свойства, ничего не получится. URL-адрес, строка и атрибут — все это примеры свойства содержимого.

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

    Что делает :: до и :: после выполнения Css?

    Селектор CSS::before вставляет содержимое перед выбранным элементом перед селектором CSS::before. CSS: после вставки содержимого после определенного элемента, как показано на изображении ниже. Ссылка или абзац могут быть добавлены в последний абзац или перед ссылкой.

    Что означает :: After и :: Before?

    Что означает слово и фраза. Селектор ::before используется для вставки чего-либо перед содержимым каждого элемента до его появления. Свойство содержимого можно использовать для указания вставляемого содержимого. При вставке чего-либо после содержимого используйте селектор ::after.

    Before After Hover Css

    Before/After — это селектор псевдоэлементов CSS, используемый для выбора и стиля двух псевдоэлементов, которые создаются до и после элемента. Псевдоэлементы :before и :after генерируются браузером и отсутствуют в исходном коде HTML.
    «До/После» позволяет независимо стилизовать два сгенерированных псевдоэлемента. Например, вы можете использовать его для добавления фонового изображения к элементу при наведении или для изменения цвета текста.

    Hover Css

    Псевдокласс CSS3 hover используется для применения специальных стилей к элементам, когда пользователь наводит на них курсор. Его можно использовать для всех элементов, а не только для ссылок. Псевдокласс :hover используется в сочетании с псевдоклассами :link, :visited и :active, которые используются для оформления ссылок.

    Набор эффектов наведения с поддержкой CSS3, включая ссылки, кнопки, логотипы, SVG, избранные изображения и т. д. Элементы можно легко модифицировать или адаптировать для собственного использования. Доступны CSS, Sass и LESS.

    Hover:after Transition Css

    Псевдоэлемент :after используется для вставки содержимого после элемента. Контент часто используется для добавления декоративных элементов, таких как значки или дополнительный интервал.
    Псевдоэлемент :after можно использовать с псевдоклассом :hover для создания эффекта перехода содержимого при наведении. Например, следующий CSS будет перемещать содержимое :after слева направо при наведении:
    .element:hover:after {
    content: ” “;
    позиция: абсолютная;
    верх: 0;
    осталось: 0;
    ширина: 100%;
    высота: 100%;
    фон: #000;
    непрозрачность: 0,5;
    -webkit-transition: все 0,3 с облегчения входа-выхода;
    -moz-transition: все 0,3 с плавного входа-выхода;
    -ms-transition: все 0,3 с облегчения входа-выхода;
    -o-transition: все 0,3 с плавного входа-выхода;
    переход: все 0,3 с плавного входа-выхода;
    }

    Когда элемент активирован, он является частью псевдокласса:active. При нажатии кнопки или кнопки мыши на компоненте он автоматически активируется. Если удерживать мышь на элементе в этом коде, высота и ширина блока будут анимированы. В этой статье мы покажем вам, как использовать переходы CSS3 без необходимости наведения. Мы также рассмотрим, как использовать медиа-запросы для уменьшения окна, если его размер экрана меньше 9.61 В этом случае переходы можно использовать без наведения курсора на элемент.

    Как использовать переходы Css без перемещения

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

    Id:hover Css

    Псевдокласс CSS id:hover используется для применения стиля к элементу, когда пользователь наводит на него курсор. Его можно использовать для любого элемента, и чаще всего он используется для ссылок или других элементов, по которым можно щелкнуть.

    При выборе элемента из HTML-элемента на странице CSS атрибут ID используется для выбора одного конкретного элемента. Селектор ID можно использовать для перечисления тегов ID с хэштегом (#.), за которыми следует тег ID. Вы можете найти синтаксис для: hover, введя имя элемента в файл CSS. Начиная с HTML5, идентификатор элемента HTML действителен для всех элементов в коде HTML. Не рекомендуется использовать идентификаторы в селекторах CSS. В будущем у вас может не быть всех элементов этого стиля.

    Если вы используете тег класса вместо написания кода, вы будете более эффективными. В эффекте перехода CSS Hover элементы активируются, когда пользователи наводят на них указатель мыши. Хотя:hover не принадлежит ни к какому классу, он позволяет произвольно выбирать объекты мышью. Код, который необходимо использовать для использования наведения в элементе div, описан ниже.

    Псевдокласс Hover Css соответствует

    Псевдокласс hover CSS соответствует, когда пользователь взаимодействует с элементом с помощью указывающего устройства, но не обязательно активирует его. Обычно он срабатывает, когда пользователь наводит курсор на элемент (указатель мыши).

    Использование метода :not(:hover) сильно подорвало бы всю цель псевдокласса. Маловероятно, что вычислительные затраты будут снижены. Вы можете обозначить элемент только с помощью указывающего устройства (:hover), или вы не можете обозначить элемент вообще (:not('hover). У вас есть несколько других вариантов для этого, так что это уже достаточно редко, чтобы быть полезным. всего на два байта короче, чем обычный текст, и занимает часть места. Явное заявление о том, что альтернатива должна быть описана, реализована и протестирована, просто не оправдано. В результате, если вы беспокоитесь о поддержки браузера, этот псевдокласс также был бы включен.0003

    Как решить проблемы с наведением

    В какой-то момент веб-разработки вы можете столкнуться с тем, что CSS наведение не работает. Иногда при наведении курсора CSS вас могут запутать. Это неприятно, но вы сможете решить проблему с нужными навыками.

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

    Содержание

    • Как свойство псевдокласса Hover работает в CSS
      • – Пример – CSS Hover в действии
    • Причины неработающего зависания
      • 1. Смартфоны — нет состояния зависания
      • 2. Неверный формат CSS
      • 3. Специфика CSS
      • 4. Использование правила !important
      • Заключение0 в CSS0

      Как свойство псевдокласса Hover работает в CSS

      Являясь одним из многих свойств псевдокласса в CSS, селектор наведения позволяет вам стилизовать элементы при наведении курсора на него , это работает практически на всех элементы. Его синтаксис следующий:

      элемент :hover
      {
      Правила CSS;
      }

      Элемент относится к различным элементам, к которым будет применяться свойство псевдокласса наведения. В то время как :hover указывает браузеру применять правила CSS, когда курсор находится над элементами.

      – Пример – CSS Hover в действии

      Предположим, вы хотите украсить все элементы

      на веб-странице с помощью

      , добавив оранжевую линию над и подчеркивание толщиной 4 пикселя , вы можете легко сделать это в CSS. Однако сначала вам нужно создать HTML-код следующим образом:

      Hello World


      Чтобы украсить текст при наведении, CSS позволяет сделать это следующим образом:
      h4:hover
      {
      text-decoration: оранжевый 4px подчеркивание надчеркивание;
      }

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

      Причины неработающего наведения

      Псевдокласс наведения работает, когда пользователь использует курсор для взаимодействия с элементом, не обязательно активируя его. Чтобы вызвать его, пользователь должен навести курсор на элемент. Однако известны случаи, когда свойство hover в CSS не работает должным образом.

      К ним относятся:

      1. Смартфоны — нет состояния наведения

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

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

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

      Однако проблема возникает, когда состояние наведения либо показывает, либо скрывает другой элемент посредством видимости или свойств отображения в CSS. Такие эффекты наведения на устройствах iOS изменятся на поведение двойного нажатия, поскольку браузер не может правильно использовать CSS наведения.

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

      Решения проблем с наведением курсора на смартфонах

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

      На мобильных устройствах необходимо заменить мегаменю, активируемые состоянием наведения , на переключаемое меню . Для этого вам нужно использовать значок гамбургера для всего содержимого меню, которое не всегда может быть видно на маленьких экранах. Вот почему вы можете избежать проблем с CSS hover, которые не работают на мобильных устройствах с помощью раскрывающегося меню .

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

      Чтобы решить эту проблему на мобильных устройствах для сайтов электронной коммерции, вы можете использовать 2 популярных решения в зависимости от вашего дизайна.

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

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

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

      2. Неверный формат CSS

      Чтобы CSS работал, вы должны убедиться, что код CSS соответствует допустимому и читаемому браузерами формату. Например, стиль не будет применяться, если вы не используете правильный селектор при выборе элемента. Когда селектор состоит из разных частей, вам нужно начать с «наибольшего» до «наименьшего», поэтому, если вы напишете его в любом другом порядке, 9Эффект 0027 не применяется.

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

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

      Кроме того, убедитесь, что вы используете двоеточие (:) между каждым свойством и его значением и точку с запятой (;) после каждого значения, чтобы браузеры могли читать ваш код CSS.

      3. Специфика CSS

      В CSS более конкретный селектор имеет тенденцию побеждать менее конкретный селектор.

      Пример.
      Специфика в действии

      Предположим, вы по-прежнему хотите оформить весь текст в тегах

      внутри тегов

      с помощью надчеркивания и подчеркивания при наведении. Код CSS по умолчанию для оформления тегов

      внутри тегов

      будет следующим:

      h4:hover
      {
      text-decoration: blue 4px underline overline;
      }

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

      h4:hover
      {
      text-decoration: orange 4px underline overline;
      }

      Хотя короткий селектор допустим в CSS, ваш стиль не будет работать в браузере. Вместо этого будет применяться стиль по умолчанию, так как он имеет более конкретный селектор.

      4.

      Использование правила !important в CSS

      Иногда вам может быть проще сделать менее конкретный код в CSS для работы с помощью правила !important . Однако вам лучше сначала использовать более конкретный селектор, имея в виду, что с правилом !important иногда вы получаете быстрое решение.

      Тем не менее, включая его не всегда работает . Понять, сработает ли правило !important, может быть непросто. В большинстве случаев вам просто нужно проверить это.

      Пример – !important Правило в действии

      Предположим, вы все еще хотите переопределить стиль CSS по умолчанию при наведении для тегов

      внутри элементов

      с помощью короткого селектора. CSS позволяет вам использовать правило !important непосредственно перед тем, как вы прекратите действие правила CSS, чтобы принудительно применить эффекты при наведении, например:

      h4:hover
      {
      украшение текста: оранжевый 4px подчеркивание надчеркивание !важно;
      }

      Заключение

      Готово! Чтобы избежать проблем со свойством hover , убедитесь, что вы учитываете контекст каждого проекта, прежде чем определять функции. Вот краткое изложение того, что вы узнали:

      • Свойство псевдокласса :hover в CSS позволяет вам стилизовать элементы при наведении курсора
      • Обычно свойство hover отлично работает в среде рабочего стола; однако это не всегда работает так, как ожидалось
      • Некоторые проблемы возникают на небольших устройствах с сенсорным экраном, которые не поддерживают наведение
      • Кроме того, наведение не будет работать, если вы используете неправильный формат CSS. Обратите внимание, что если вы не укажете правильную специфичность, стиль наведения не будет работать
      • Хотя вы можете использовать правило !important, нет гарантии, что оно всегда будет работать

      Теперь вы знаете, как избежать проблем с неработающим наведением CSS, используйте это свойство как профессионал.

      • Автор
      • Последние сообщения

      Должность решает все

      Должность решает все: Ваш ресурс для изучения и создания: CSS, JavaScript, HTML, PHP, C++ и MYSQL.

      Последние сообщения Position is Everything (посмотреть все)

      10 фрагментов кода CSS и JavaScript для создания расширенных эффектов при наведении на изображение

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

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

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

      Набор инструментов веб-дизайнера

      Неограниченные загрузки: шаблоны HTML и Bootstrap, темы и плагины WordPress и многое, многое другое!

      HTML-шаблоны

      3200+ шаблонов

      Шаблоны Bootstrap

      Более 2000 шаблонов

      Шаблоны панели мониторинга

      240+ шаблонов

      темы WordPress

      1450+ тем

      Шаблоны информационных бюллетеней

      270+ шаблонов

      Веб-шрифты

      13 500+ шрифтов

      Начать загрузку прямо сейчас!

      Photo Effects on Hover

      by Alvaro Montoro

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

      См. Эффекты Pen Photo при наведении курсора с использованием JS и CSS3, автор Alvaro Montoro

      Быстрые и мощные эффекты для изображений

      , автор kw7oe

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

      См. Эффекты наведения пера на изображение от kw7oe

      Наведение на изображение с выдвижением Название

      by LittleSnippets

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

      See the Pen #1104 – Наведите курсор на изображение с выдвижным заголовком от LittleSnippets.net

      Show Your Cards Image Effects

      by Bruno Rodrigues

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

      См. Эффект наведения на изображение пера — CSS3, автор Bruno Rodrigues

      Эффекты наведения на изображение с изменяющейся реальностью

      , автор Dimitra Vasilopoulou

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

      См. Эффект наведения пера на изображение от Димитры Василопулу

      Эффекты разделения изображения при наведении курсора

      от Dimitra Vasilopoulou

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

      См. разделенное изображение пера | Hover Effect от Dimitra Vasilopoulou

      Pure Class Image Effect with Pure CSS

      от Mahesh Ambure

      Эта коллекция эффектов наведения доказывает, что вам не нужно быть чрезмерным, чтобы произвести сильное впечатление. Здесь есть различные варианты стиля, но каждый из них отображает текстовое содержимое и фильтры при наведении курсора. И ни одна строка JavaScript не использовалась.

      См. Pen Awesome Image Hover in Pure CSS by MAHESH AMBURE

      Key(frames) to the Wild

      by Vail Joy

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

      См. Pen Animation @keyframes в Image Hovers от Vail Joy

      The Bigger Picture Image Hover Gallery

      от Shaw

      Фотогалереи настолько широко распространены, но вы не увидите много действительно уникальных. Вот потрясающее исключение. Наведите указатель мыши на миниатюру изображения в сетке, и полноразмерная версия займет весь контейнер. Но это только половина истории. По-настоящему крутой фактор возникает из-за того, что само изображение «разделяется» и собирается обратно по мере загрузки.

      См. Pen Splitting:Image Hover Gallery от Shaw

      Эффект раскрытия разделенного изображения

      от Mark Mead

      Здесь у нас есть забавная техника для раскрытия текста за изображением. В этом фрагменте показаны различные способы «разбить» изображение на полосы, расчищая тем самым путь для секретного сообщения. Поскольку это немного сложно, возможно, вам не захочется постоянно использовать его на странице. Но при правильной реализации вы добавите творческую изюминку в свой проект.

      См. Pen Fancy Image Splitting (SplittingJS) Марка Мида

      У нас есть драма

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

      Пусть эти примеры вдохновят вас. Затем поэкспериментируйте со способами добавить драматизма своим изображениям.

      Триггеры наведения -- Интерактивные эффекты CSS

      Запуск одного или нескольких эффектов при наведении курсора на элемент

      Обзор

      Триггер Hover , как следует из названия, запускает эффект перехода (анимация), когда пользователь выполняет действие :hover на элементе или несколько элементов. Чтобы добавить эффект к одному элементу, используйте триггеры. Если вам нужно анимировать сразу несколько эффектов, когда пользователь наводит курсор на один (родительский) элемент, используйте родительские триггеры. Вы даже можете комбинировать эти два триггера.

      Синтаксис

      Синтаксис триггера следующий: : где:

      • hover: - эффект триггера на элементе :hover

        9005| selector>): - запускает эффект для дочерних элементов, когда родительский элемент получает :hover

      " .

      Наведите курсор на элементы:

      Цвет фона

      Непрозрачность

      Нажмите вверх

       
      Цвет фона
      Непрозрачность
      Push up

      На родительском элементе

      Триггер множественных эффектов на дочерних элементах, когда родительский элемент получает состояние :hover используя data-tor="hover(p|):" .

      Все элементы должны быть дочерними по отношению к родительскому элементу.

      Использование

      data-tor-parent

      Добавьте data-tor-parent="hover" к родительскому элементу-оболочке, затем используйте hover(p): , чтобы вызвать множественный эффект, когда родительский элемент зависает.

      Наведите указатель мыши на оболочку:

      Масштаб

      Непрозрачность

      Поднять

       
      Масштаб
      Непрозрачность
      Отжимание

      Пользовательский родительский селектор

      Также можно запускать несколько эффектов без элемента data-tor-parent . Просто используйте hover(): и выберите нужный элемент.

      В этом примере показано, как создать несколько эффектов при наведении родительского селектора #wrapper .

      Наведите указатель мыши на оболочку:

      Масштаб

      Непрозрачность

      Поднять

       
      to(75%)">Масштаб
      Непрозрачность
      Отжимание

      Множественные эффекты

      Вы можете комбинировать несколько триггеров между или даже с родительскими триггерами в одном атрибуте data-tor .

      На одном элементе

      Использовать несколько наведения: в одном атрибуте data-tor .

      Наведите указатель мыши на элементы:

      Толчок и тень

      Уменьшение и затемнение

      Поворот и непрозрачность

       
      Push & shadow
      Уменьшить и затемнить
      Поворот и непрозрачность

      На родительском элементе

      Использовать несколько hover(p): в одном атрибуте data-tor .

      Наведите указатель мыши на оболочку:

      Толчок и тень

      Уменьшение и затемнение

      Поворот и прозрачность

       
      up(xs) hover(p):shadow(risen)">Push & shadow
      Уменьшить и затемнить
      Поворот и непрозрачность

      Комбинация эффектов

      Вы даже можете комбинировать hover: с hover(p): . Но поскольку hover(p): имеет более высокий приоритет, он может переопределить триггер hover: для некоторых эффектов. Поставьте восклицательный знак ! перед сокращением триггера вроде этого !hover: . Это добавит атрибут !important к триггеру и переопределит родительский триггер. Это полезно, когда у вас есть несколько похожих элементов, и вам нужно анимировать их при наведении родительского триггера, но вам также нужно запускать анимацию (переход) для отдельных элементов :hover состояния без их вложения.

      наведение: триггер не работает

      Наведение на обёртку и отдельные элементы:

      Push up

      Масштаб

      Непрозрачность

      С важным
      ! отметка

      Наведите указатель мыши на обертку и отдельные элементы:

      Поднимите вверх

      Масштаб

      Непрозрачность

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

    Ваш адрес email не будет опубликован. Обязательные поля помечены *