Встроенный стиль, который будет действовать как: hover в CSS

Я знаю, что встраивание стилей CSS непосредственно в теги HTML, которые они затрагивают, в значительной степени противоречит целям CSS, но иногда это полезно для целей отладки, например:

<p style = "font-size: 24px">asdf</p>

Какой синтаксис для встраивания правила вроде:

a:hover {text-decoration: underline;}

в атрибут стиля тега A? Очевидно, дело не в этом ...

<a href = "foo" style = "text-decoration: underline">bar</a>

... так как это будет применяться всегда, а не только во время наведения.

Теоретически, если вы пытаетесь сделать наведение чего-то динамичным, вы можете использовать javascript для внедрения правила наведения в таблицу стилей, используя список существующих листов window.document.styleSheets.

GAgnew 10.11.2011 01:52

См. Также stackoverflow.com/questions/5293280/…

rogerdpack 06.07.2017 23:14
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
101
2
314 587
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

Ответ принят как подходящий

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

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

Редактировать: Я только что провел быстрый тест:

<a href = "test.html" style = "{color: blue; background: white} 
            :visited {color: green}
            :hover {background: yellow}
            :visited:hover {color: purple}">Test</a>

И это не работает в IE7, IE8 beta 2, Firefox или Chrome. Может ли кто-нибудь еще протестировать в других браузерах?

Это рабочий черновик CSS 3 с очень низким приоритетом, который не обновлялся шесть лет. Из спецификации: «Неуместно использовать Рабочие проекты W3C в качестве справочного материала или цитировать их как« незавершенные ». '

Jim 25.09.2008 10:12

Верно, но браузеры реализуют некоторые правила CSS3, должен, вероятно, неправильное слово в этом контексте

Glenn Slaven 25.09.2008 10:17

Браузеры обычно реализуют функции CSS, которые находятся в стадии дальнейшей разработки, например непрозрачность взята из CSS Color (Last Call), а Media Queries является кандидатом в рекомендацию.

Jim 25.09.2008 19:26

Разве style = ": hover {}" не был бы эквивалентен "a {: hover {}}" в таблице стилей? Очевидно, это синтаксическая ошибка.

Kornel 27.11.2008 23:09

Этот ответ был опубликован очень давно, с тех пор все изменилось, и текущая версия соответствующей спецификации W3C - CSS Style Attribute Rec. (w3.org/TR/css-style-attr/#syntax) - четко сказано, что атрибут стиля может содержать только содержимое блока объявления CSS. Таким образом, теперь невозможно вставить псевдоэлементы с атрибутом style.

Ilya Streltsyn 27.01.2014 02:29

Если вы только отлаживаете, вы можете использовать javascript для изменения CSS:

<a onmouseover = "this.style.textDecoration='underline';" 
    onmouseout = "this.style.textDecoration='none';">bar</a>

Искал решение с JSF, и это помогло мне это исправить. onmousemove = "this.style.color = '## {cc.attrs.color}';" onmouseout = "this.style.color = 'white';"

kdoteu 02.06.2014 16:00

Если это для отладки, просто добавьте класс css для зависания (поскольку элементы могут иметь более одного класса):

a.hovertest:hover
{
text-decoration:underline;
}

<a href = "http://example.com" class = "foo bar hovertest">blah</a>

Это, вероятно, самое близкое к желаемому эффекту.

Glenn Slaven 25.09.2008 10:10

Я не думаю, что jQuery поддерживает псевдоселекторы, но он обеспечивает быстрый способ добавления событий к одному, многим или всем вашим аналогичным элементам управления и тегам на одной странице.

Лучше всего то, что вы можете связать привязки событий и сделать все это в одной строке скрипта, если хотите. Намного проще, чем вручную редактировать весь HTML, чтобы включить или выключить их. Опять же, поскольку вы можете делать то же самое в CSS, я не знаю, что это вам что-то дает (кроме изучения jQuery).

Простое решение:

   <a href = "#" onmouseover = "this.style.color='orange';" onmouseout = "this.style.color='';">My Link</a>

Или же

<script>
 /** Change the style **/
 function overStyle(object){
    object.style.color = 'orange';
    // Change some other properties ...
 }

 /** Restores the style **/
 function outStyle(object){
    object.style.color = 'orange';
    // Restore the rest ...
 }
</script>

<a href = "#" onmouseover = "overStyle(this)" onmouseout = "outStyle(this)">My Link</a>

Я собрал быстрое решение для всех, кто хочет создавать всплывающие окна без CSS, используя поведение onmouseover и onmouseout.

http://jsfiddle.net/Lk9w1mkv/

<div style = "position:relative;width:100px;background:#ddffdd;overflow:hidden;" onmouseover = "this.style.overflow='';" onmouseout = "this.style.overflow='hidden';">first hover<div style = "width:100px;position:absolute;top:5px;left:110px;background:white;border:1px solid gray;">stuff inside</div></div>

Если этот тег <p> создан из JavaScript, у вас есть другой вариант: использовать JSS для программной вставки таблиц стилей в заголовок документа. Он поддерживает '&:hover'. https://cssinjs.org/

Другие вопросы по теме