Wiem, że osadzanie stylów CSS bezpośrednio w tagach HTML, na które wpływają, podważa większość funkcji CSS, ale czasami jest to przydatne do celów debugowania, na przykład:
<p style="font-size: 24px">asdf</p>
Jaka jest składnia osadzania reguły, takiej jak:
a:hover {text-decoration: underline;}
do atrybutu stylu znacznika A? To oczywiście nie to ...
<a href="foo" style="text-decoration: underline">bar</a>
... ponieważ miałoby to zastosowanie przez cały czas, a nie tylko podczas zawisu.
Odpowiedzi:
Obawiam się, że nie da się tego zrobić, selektorów pseudoklas nie da się ustawić w linii, będziesz musiał to zrobić na stronie lub w arkuszu stylów.
Należy wspomnieć, że technicznie ty powinien być w stanie to zrobić według specyfikacji CSS , ale większość przeglądarek nie obsługują
Edycja: właśnie zrobiłem szybki test z tym:
<a href="test.html" style="{color: blue; background: white} :visited {color: green} :hover {background: yellow} :visited:hover {color: purple}">Test</a>
I nie działa w IE7, IE8 beta 2, Firefox czy Chrome. Czy ktoś inny może testować w innych przeglądarkach?
źródło
style
atrybutem.Jeśli tylko debugujesz, możesz użyć javascript do zmodyfikowania css:
<a onmouseover="this.style.textDecoration='underline';" onmouseout="this.style.textDecoration='none';">bar</a>
źródło
Proste rozwiązanie:
<a href="#" onmouseover="this.style.color='orange';" onmouseout="this.style.color='';">My Link</a>
Lub
<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>
źródło
Jeśli służy do debugowania, po prostu dodaj klasę css do najechania (ponieważ elementy mogą mieć więcej niż jedną klasę):
a.hovertest:hover { text-decoration:underline; } <a href="http://example.com" class="foo bar hovertest">blah</a>
źródło
Przygotowałem szybkie rozwiązanie dla każdego, kto chce tworzyć wyskakujące okienka typu hover bez CSS, używając zachowań onmouseover i 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>
źródło
Jeśli ten
<p>
tag został utworzony z JavaScript, masz inną opcję: użyj JSS, aby programowo wstawić arkusze stylów do nagłówka dokumentu. Obsługuje'&:hover'
. https://cssinjs.org/źródło
Nie sądzę, by jQuery obsługuje również pseudo-selektory, ale zapewnia szybki sposób dodawania zdarzeń do jednej, wielu lub wszystkich podobnych kontrolek i tagów na jednej stronie.
A co najlepsze, możesz połączyć zdarzenia w łańcuch i zrobić to wszystko w jednej linii skryptu, jeśli chcesz. O wiele łatwiejsze niż ręczne edytowanie całego kodu HTML, aby je włączyć lub wyłączyć. Z drugiej strony, ponieważ możesz zrobić to samo w CSS, nie wiem, czy kupisz cokolwiek (poza nauką jQuery).
źródło