Jak pisać :hoveri :visitedwarunek dla a:before?
Próbuję, a:before:hoverale to nie działa
Jak pisać :hoveri :visitedwarunek dla a:before?
Próbuję, a:before:hoverale to nie działa
Odpowiedzi:
To zależy od tego, co naprawdę próbujesz zrobić.
Jeśli chcesz po prostu zastosować style do :beforepseudoelementu, gdy aelement pasuje do pseudo-klasy, musisz napisać a:hover:beforelub a:visited:beforezamiast tego. Zwróć uwagę, że pseudoelement występuje po pseudo-klasie (a właściwie na samym końcu całego selektora). Zauważ też, że są to dwie różne rzeczy; nazywanie ich oboma „pseudo-selektorami” wprowadzi cię w błąd, gdy napotkasz problemy ze składnią, takie jak ta.
Jeśli piszesz CSS3, możesz oznaczyć pseudoelement podwójnymi dwukropkami, aby rozróżnić to rozróżnienie. Stąd a:hover::beforei a:visited::before. Ale jeśli tworzysz starsze przeglądarki, takie jak IE8 i starsze, możesz bez problemu używać pojedynczych dwukropków.
Ta szczególna kolejność pseudoklas i pseudoelementów jest określona w specyfikacji :
Jeden pseudoelement może być dołączony do ostatniej sekwencji prostych selektorów w selektorze.
Sekwencja prostych przełączników jest łańcuchem prostym selektory, które nie są oddzielone combinator. Zawsze zaczyna się od selektora typu lub selektora uniwersalnego. Żaden inny typ lub uniwersalny selektor nie jest dozwolony w sekwencji.
Selektor proste jest albo przełącznik rodzaju selektor uniwersalny selektor atrybutem klasy selektor selektor ID, lub pseudo klasy.
Pseudoklasa to prosty selektor. Jednak pseudoelement nie jest, chociaż przypomina prosty selektor.
Jednak w przypadku pseudoklasy działania użytkownika, takiej jak :hover1 , jeśli ten efekt ma być zastosowany tylko wtedy, gdy użytkownik wchodzi w interakcję z samym pseudoelementem, ale nie z aelementem, nie jest to możliwe inaczej niż poprzez pewne niejasne obejście zależne od układu . Jak sugeruje tekst, standardowe pseudoelementy CSS nie mogą obecnie mieć pseudoklas. W takim przypadku konieczne będzie zastosowanie :hoverdo rzeczywistego elementu potomnego zamiast pseudoelementu.
1 Oczywiście nie dotyczy to pseudoklas link, takich :visitedjak w pytaniu, ponieważ pseudoelementy nie są linkami.
text-decoration.
Napisz a:hover::beforezamiast a::before:hover: przykład .
:aftervs CSS3 ::after developer.mozilla.org/en-US/docs/Web/CSS/::after (singiel :ma lepsze wsparcie)
Aby zmienić tekst łącza menu po najechaniu kursorem myszy. (Tekst w innym języku po najechaniu kursorem) tutaj jest
HTML:
<a align="center" href="#"><span>kannada</span></a>
css:
span {
font-size:12px;
}
a {
color:green;
}
a:hover span {
display:none;
}
a:hover:before {
color:red;
font-size:24px;
content:"ಕನ್ನಡ";
}
a:hover::beforez text-decoration: underline, co powoduje podkreślenie odebrać czerwony kolor tekstu zastępczego.
Spróbuj użyć .card-listing:hover::after hoveri afterużywać ::go będzie działać
Odpowiedź BoltClock jest poprawna. Jedyne, co chcę dołączyć, to to, że jeśli chcesz tylko wybrać pseudo element, wstaw zakres.
Na przykład:
<li><span data-icon='u'></span> List Element </li>
zamiast:
<li> data-icon='u' List Element</li>
W ten sposób możesz po prostu powiedzieć
ul [data-icon]:hover::before {color: #f7f7f7;}
który podświetli tylko pseudo element, a nie cały element li
Możesz również ograniczyć swoje działanie do jednej klasy, używając prawego spiczastego nawiasu („>”), jak to zrobiłem w tym kodzie:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
span {
font-size:12px;
}
a {
color:green;
}
.test1>a:hover span {
display:none;
}
.test1>a:hover:before {
color:red;
content:"Apple";
}
</style>
</head>
<body>
<div class="test1">
<a href="#"><span>Google</span></a>
</div>
<div class="test2">
<a href="#"><span>Apple</span></a>
</div>
</body>
</html>
Uwaga: Hover: before switch działa tylko w klasie .test1