13

Как написать 'a:hover' в инлайн CSS?

14

У меня есть ситуация, в которой мне нужно написать инлайн CSS, и я хочу применить стиль при наведении на якорь (ссылку).

Как я могу использовать a:hover в инлайн CSS внутри атрибута стиля HTML?

Например, использование CSS классов в HTML-рассылках не всегда возможно и надежно.

5 ответ(ов)

0

Хотя кажется невозможным определить правило :hover в стиле inline, вы можете задать значение стилей в inline, используя CSS переменную:

:hover {
  color: var(--hover-color);
}
<a style="--hover-color: green">
    Библиотека
</a>

Рекомендуется использовать атрибут или класс в дополнение к селектору (например, [hover-color]:hover), чтобы обеспечить совместное существование с другими правилами изменения цвета при наведении с низкой специфичностью (например, из CSS reset или некоторых элементов, использующих стандартный стиль).

0

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

.hover-item {
    background-color: #FFF;
}

.hover-item:hover {
    background-color: inherit;
}
<a style="background-color: red;">
    <div class="hover-item">
        Контент
    </div>
</a>

В данном случае встроенный стиль: "background-color: red;" будет цветом переключения при наведении. Просто замените цвет на нужный вам, и это решение будет работать. Понимаю, что это может не быть идеальным решением с точки зрения совместимости, но если это абсолютно необходимо, то оно работает.

0

Чтобы задать стили с помощью JavaScript, вы можете использовать несколько подходов. Вот два способа, как добавить стили к элементу с идентификатором mydiv:

a) Добавление инлайн-стиля

Вы можете динамически внедрить CSS-правило в <head> вашего документа:

document.head.insertAdjacentHTML('beforeend', '<style>#mydiv:hover{color:red;}</style>');

Этот способ добавляет правило, которое изменяет цвет текста на красный при наведении мыши на элемент mydiv.

b) Немного более сложный метод - добавление обработчиков событий "mouseover" и "mouseleave"

Другой вариант — использовать JavaScript для изменения класса элемента при наведении мыши:

document.getElementById("mydiv").onmouseover = function(e) {
    this.className += ' my-special-class';
};
document.getElementById("mydiv").onmouseleave = function(e) {
    this.className = this.className.replace('my-special-class', '');
};

В этом случае при наведении на элемент mydiv к его классу добавляется класс my-special-class, а при уходе мыши он снова удаляется.

Примечание

При работе с многословными стилями, такими как font-size, в JavaScript они записываются без дефисов и с использованием верхнего регистра для следующего слова:

element.style.fontSize = "12px";

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

0

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

style="cursor: pointer;"
0

Вы можете сделать это, но не с помощью встроенных стилей. Вы можете использовать события onmouseover и onmouseout. Вот пример:

<div style="background: #333; padding: 10px; cursor: pointer"
   onmouseover="this.style.backgroundColor='#555';" onmouseout="this.style.backgroundColor='#333';">
      Наведите курсор на меня!
</div>

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

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь