css — Как при hover изменить цвет тексту и svg?
Задать вопрос
Вопрос задан
Изменён 9 месяцев назад
Просмотрен 204 раза
Нужно при наведении поменять цвет текста ссылки и свг которая заинлайнена в html. Как это можно сделать? Или же сделать свг псевдоэлементом? Подскажите варианты, заранее спасибо.
<a href="https://htmlacademy.ru/intensive/adaptive">Разработано в HTML Academy
<svg viewBox="0 0 12 16" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path
d="M11.2151 5.75392L5.97184 2.49957V2.49875L5.97121 2.49916L5.97058 2.49875V2.49957L0.784854 5.75013V1.40658L6.
00008 0.830884L11.2151 1.40658V5.75392ZM11.211 6.32987L9.12557 7.62344L5.98451 5.65607L5.97935 6.22863L8.66414 7.9096L8.20107 8.19683L5.98451 6.80853L5.97935 7.3811L7.72892 8.47648L7.31607 8.76717L7.30606 8.77351L5.98451 7.95383L5.97935 8.52631L6.8465 9.06404L5.96315 9.62244L0.796198 6.3886L5.97058 3.1139V3.11448L11.211 6.32987ZM11.2151 11.7713L6 15.0384L0.784854 11.7713V7.02542L5.97763 10.2796L5.98631 10.8693L2.42396 8.63702L2.41871 9.20959L5.99523 11.4728L6.00407 12.0782L2.42873 9.83883L2.42356 10.4113L6 12.6745L9.60624 10.4026V7.95712L11.2151 6.94552V11.7713ZM5.99984 -3.17891e-07L0 0.662267V12.2411L6 16L12 12.2411V0.662267L5.99984 -3.17891e-07Z"
fill="#BDBDBD" />
</svg>
</a>
- css
- frontend
4
Для изменения цвета svg используется css свойство fill.
В вашем случае css должен выглядеть так:
a:hover {
color: green;
}
a:hover > svg path {
fill: red;
}
Где > — указатель на прямых потомков элемента.
Зарегистрируйтесь или войдите
Регистрация через Google
Регистрация через Facebook
Регистрация через почту
Отправить без регистрации
Почта
Необходима, но никому не показывается
Отправить без регистрации
Почта
Необходима, но никому не показывается
Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки
Решение проблемы с 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Подобное поведение элементов может запутать пользователя и подобная практика будет отрицательно сказываться на вашем продукте. Эту проблему необходимо как-то решить.
“Не может же быть, чтобы эту проблему не пытались как-то решить…”
body . После чего, добавляя к какому-либо элементу псевдокласс :hover, будет происходить явное обращение к этому классу.body.nontouch nav a:hover {
background: yellow;
}Однако подобное решение имеет несколько недостатков:
- Разработчик может создать JS-сценарий обнаружения, который работает сегодня, но что с ним будет через пару месяцев, когда появится какая-то новая технология? Ноутбуки с сенсорными экранами? Съемные сенсорные экраны? Apple Pencil? Никто не хотел бы беспокоиться об этом во время разработки.

- Использование основанного на компонентах JS-фреймворка с инкапсулированными стилями неудобно. Так как каждый раз, когда активируется :hover, стили этого элемента должны ссылаться на этот глобальный класс.
- Это решение может работать по-разному на разных устройствах. Возможно, что для специальных устройств придется придумывать специальное решение. Однако должен быть стандартизированный способ, работающий на всех устройствах.
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 эффекты и ролловеры в электронной почте
Разработка электронной почты
10 мая 2022 г.
Хотите сделать электронные письма более интерактивными? Поначалу концепция интерактивных электронных писем может показаться немного пугающей. Но если вы начнете с чего-то простого — например, эффектов наведения CSS — вы на правильном пути.
Хотите узнать, как использовать эффект прокрутки в электронной почте? Вам повезло!
Мой хороший друг и коллега по электронной почте, Ноут Боктор-Смит присоединился ко мне как самый первый гость в новой веб-серии Email on Acid , Notes from the Dev: Video Edition . Она провела нас через краткое руководство о том, как использовать эффект наведения CSS, чтобы заставить изображения переключаться при наведении курсора.
Что такое
Заметки от Dev ? Электронная почта на веб-сайте Acid уже более десяти лет является домом для полезных ресурсов по разработке электронной почты. Многие из практических руководств для разработчиков электронной почты в нашем блоге написаны членами сообщества фанатов электронной почты.
(Спасибо, кстати!)
Мы хотели привлечь внимание к их изобретательности и творчеству, а также поделиться с вами советами и идеями.
Итак… мы с гордостью представляем Notes from the Dev: Video Edition с вашей ведущей, Меган Бошуйзен (это я). Это продолжение моей ежемесячной колонки, которую вы найдете в информационном бюллетене Email on Acid.
Следите за этим блогом и подпишитесь на канал Email on Acid на YouTube, чтобы получать последние выпуски. В каждом эпизоде будут представлены эксперты по электронной почте, которые покажут вам, как устранять распространенные проблемы с электронной почтой или поэкспериментировать с инновационными идеями для почтового ящика.
Смотреть Первый Эпизод с Ноут Боктор-Смит
(Посетите наш Ресурсный Центр, чтобы просмотреть полную транскрипцию этого эпизода.)
Ноут Боктор-Смит Я был очень рад пригласить Ноут быть моим первым гостем на шоу. Она не только мой хороший друг, но и вносит большой вклад в сообщество электронной почты.
Если вы являетесь участником Email Geeks Slack, вы, вероятно, видели ее, потому что она является одним из администраторов группы. Конечно, у Ноута тоже есть дневная работа. В настоящее время она является старшим менеджером по маркетингу жизненного цикла в LaunchDarkly.
Ноут также был экспертом в нашем вебинаре по оптимизации работы с электронной почтой, в котором также участвовали Гильда Хилер и Шеннон Крэбилл.
В этом руководстве по использованию эффектов наведения в электронной почте в формате HTML Ноут использовала кампанию, которую она разработала для виртуального мероприятия GitLab. Мы выяснили, как сделать так, чтобы это изображение героя менялось при наведении на него курсора подписчика. Это так называемое перевернутое изображение.
Что такое ролловер?
Перемещающееся изображение так же просто, как и кажется. Это вторичное изображение, которое появляется, когда чья-то мышь наводит на основное изображение.
Это простой эффект, добавляющий электронной почте забавный интерактивный штрих.
Перевернутое изображение, вероятно, не то, что ваши подписчики видят в своих почтовых ящиках на регулярной основе. Таким образом, это сделает вашу кампанию более запоминающейся и может повысить вовлеченность по электронной почте.
Оцените сами эффект ролловера ниже:
Как кодировать ролловер-изображения в сообщениях электронной почты
Проще говоря, то, что мы делаем, это включаем некоторый код, который заставляет это главное изображение исчезать при наведении, что показывает второе, альтернативное изображение. Чтобы это произошло, вы можете воспользоваться классом CSS 9.0010 и :hover как псевдокласс CSS.
Вот фрагмент кода, который использовал Nout:
В приведенном выше коде вы заметите, что два изображения заключены в ссылку, а для max-height альтернативного изображения установлено значение 0 пикселей.
Отдельный раздел — это место,где Nout разместил CSS,определяющий,что происходит при наведении.
.rollover:hover .main{максимальная высота:0px !важно}.ролловер:наведите .alt{максимальная высота:нет !важно}Там вы увидите,что максимальная высота основного изображения теперь равна 0px,а максимальная высота альтернативного изображения равна нулю. При этом основное изображение исчезает,а альтернативное изображение заменяет его всякий раз,когда чья-то мышь взаимодействует с графикой.
Если вы еще не смотрели видео,посмотрите его,чтобы увидеть этот код в действии.
Вы,наверное,заметили,что Nout также включил в эту кампанию возможности персонализации электронной почты. Ноут использовала NiftyImages,чтобы помочь ей создать персонализированную графику и добавить имена,которые были добавлены к основному изображению.
Дополнительные советы по эффектам наведения CSS в электронной почте
Ноут рассказала о нескольких действительно хороших моментах,когда она провела нас через процесс:
- Изображения должны быть одинакового размера :Чтобы получить этот конкретный эффект,вам понадобятся изображения с одинаковыми размерами,чтобы изображение выглядело так,как будто изображение меняется перед глазами получателя. Однако могут быть случаи,когда вы используете изображения разного размера для достижения определенного эффекта.
- Двойной размер для Retina :Для отображения высококачественного изображения на устройствах Apple и мониторах 4K HD изображение должно быть в два раза больше,чем оно будет отображаться в электронном письме. Поэтому,если оно отображается с шириной 600 пикселей (полная ширина в большинстве шаблонов электронной почты),ширина изображения должна составлять 1200 пикселей.
- Лучшее для ПК :подписчики,просматривающие электронную почту на мобильном устройстве,могут нажать и удерживать,чтобы увидеть альтернативное изображение,но это не совсем то,что нам нужно.
Тем не менее,Ноут знала,что большинство из ее списка откроют ее электронную почту на рабочем столе.
По совпадению,Ноут нашел часть этого кода в блоге Email on Acid. Прочтите статью Как создать адаптивные ролловер-изображения для электронной почты ,чтобы получить еще больше информации. Вы найдете несколько потенциальных исправлений,если у вас возникли проблемы с работой эффектов наведения CSS в Outlook и Gmail.
Ваша очередь…
Надеюсь,вы видите,как легко добавить интерактивный элемент в свои электронные письма. Существует множество творческих способов использования эффектов ролловера для улучшения восприятия почтового ящика:
- Покажите продукт с разных сторон.
- Показать ответ на вопрос.
- Раскройте кульминацию шутки.
- Раскройте промо-код для покупок в Интернете.
- Покажите интерактивную фотографию до и после.
- Переключить эмоцию на лице человека.
- Изменение цвета кнопок CTA при наведении (только не забудьте использовать живой текст для доступности).

Каковы ваши идеи? Дайте нам знать об этом в комментариях. Если вы попробуете эту технику,расскажите нам,что получилось.
Будьте готовы к следующему выпуску Notes from the Dev:Video Edition ,который скоро выйдет. И не забудьте подписаться на YouTube.
Каждый раз проверяйте свои шаблоны
Думаете,что сможете добиться успеха,протестировав шаблон один раз? Не так быстро! Электронная почта постоянно развивается,и вы никогда не знаете,когда дорогостоящая ошибка может привести к новой кампании. Тестируйте каждую кампанию,каждое электронное письмо,каждый раз с помощью Предварительная проверка электронной почты о кампании Acid . Будьте уверены,что вы доставляете электронную почту идеально. Попробуйте нас бесплатно…
Бесплатная регистрация
Автор:Megan Boshuyzen
Меган — графический дизайнер,ставший разработчиком электронной почты,которая работала над всеми аспектами электронного маркетинга. Она считает,что хорошие электронные письма для добрых дел меняют мир к лучшему.
В настоящее время Меган работает разработчиком электронной почты в Sinch Email. Посетите ее веб-сайт и узнайте больше на megbosh.com.
Автор:Megan Boshuyzen
Меган — графический дизайнер,ставший разработчиком электронной почты,которая работала над всеми аспектами электронного маркетинга. Она считает,что хорошие электронные письма для добрых дел меняют мир к лучшему. В настоящее время Меган работает разработчиком электронной почты в Sinch Email. Посетите ее веб-сайт и узнайте больше на megbosh.com.
Как сделать так,чтобы наведение вызывало другое наведение в CSS? - HTML и CSS - Форумы SitePoint
andrewecookcook
1
Как сделать так,чтобы наведение вызывало другое наведение в CSS? какой пример?
ПолОБ
2
Это зависит именно от того,что вы хотите,поэтому давайте сначала начнем с примера,а затем вы можете вместо этого сказать,что вы хотите,чтобы произошло.
На самом деле вы не можете активировать наведение на что-то еще,но вы можете изменить что-то еще,пока вы наводите курсор на другое место (в зависимости от структуры). например Вы наводите курсор на div,а затем вы можете стилизовать дочерний элемент,пока родительский элемент наведен,или вы можете стилизовать соседний элемент,но эффект на соседний элемент теряется,как только вы отводите мышь (в отличие от дочернего элемента,который может оставаться активным все время,пока родитель зависает.
)
zuhaybtaha210
В CSS вы можете сделать так,чтобы одно наведение вызывало другое наведение,используя псевдокласс «:hover» и псевдокласс «:active».
Вот пример того,как это можно сделать:
HTML:
Наведите курсор 1Наведите курсор 2
CSS:
.container{дисплей:гибкий;выравнивание элементов:по центру;выравнивание содержимого:по центру;высота:100вх}.hover-1:зависание+.hover-2{цвет фона:желтый}.hover-2:активный{цвет фона:красный}В этом примере при наведении курсора на элемент «Наведение 1» фон элемента «Наведение 2» будет желтым. Когда вы нажмете «Hover 2»,его цвет фона изменится на красный.
Обратите внимание,что этот метод работает только в том случае,если второй элемент наведения является родственным элементу первого элемента наведения и расположен сразу после первого элемента. Селектор «+» используется для выбора второго элемента сразу после первого элемента.
ПолОБ
4
Нет,вы не можете вызвать состояние наведения на что-то еще,как я уже объяснял выше.
Вы можете стилизовать другой элемент,наведя курсор на соседнего элемента,как показано в моей демонстрации. Ваша демонстрация почти такая же,но использует соседний селектор,который ограничивает его область действия только следующим элементом.
м_хатли
5
Как говорит Пол,вы можете «подделать» активацию состояния наведения на братьях и сестрах/потомках и т. д.;вы можете (обычно) делать это и двунаправленно. Но стоит отметить,что вам не на самом деле включает состояние наведения на другой элемент,что может быть важным отличием для Javascript и т.

00008 0.830884L11.2151 1.40658V5.75392ZM11.211 6.32987L9.12557 7.62344L5.98451 5.65607L5.97935 6.22863L8.66414 7.9096L8.20107 8.19683L5.98451 6.80853L5.97935 7.3811L7.72892 8.47648L7.31607 8.76717L7.30606 8.77351L5.98451 7.95383L5.97935 8.52631L6.8465 9.06404L5.96315 9.62244L0.796198 6.3886L5.97058 3.1139V3.11448L11.211 6.32987ZM11.2151 11.7713L6 15.0384L0.784854 11.7713V7.02542L5.97763 10.2796L5.98631 10.8693L2.42396 8.63702L2.41871 9.20959L5.99523 11.4728L6.00407 12.0782L2.42873 9.83883L2.42356 10.4113L6 12.6745L9.60624 10.4026V7.95712L11.2151 6.94552V11.7713ZM5.99984 -3.17891e-07L0 0.662267V12.2411L6 16L12 12.2411V0.662267L5.99984 -3.17891e-07Z"
fill="#BDBDBD" />
</svg>
</a>

Тем не менее,Ноут знала,что большинство из ее списка откроют ее электронную почту на рабочем столе. 