Встроенный стиль для работы в CSS: hover - PullRequest
80 голосов
/ 25 сентября 2008

Я знаю, что встраивание стилей 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>

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

Ответы [ 6 ]

83 голосов
/ 25 сентября 2008

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

Я должен отметить, что технически вы должны быть в состоянии сделать это в соответствии со спецификацией 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. Может ли кто-нибудь еще протестировать в других браузерах?

20 голосов
/ 25 сентября 2008

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

<a onmouseover="this.style.textDecoration='underline';" 
    onmouseout="this.style.textDecoration='none';">bar</a>
16 голосов
/ 25 сентября 2008

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

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

<a href="http://example.com" class="foo bar hovertest">blah</a>
10 голосов
/ 16 августа 2014

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

   <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>
1 голос
/ 15 октября 2014

Я собрал быстрое решение для тех, кто хочет создавать всплывающие всплывающие окна без 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>
0 голосов
/ 25 сентября 2008

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...