Ik heb de volgende HTML:
<div class="menu">
<a class="main-nav-item" href="home">home</a>
<a class="main-nav-item-current" href="business">business</a>
<a class="main-nav-item" href="about-me">about me</a>
</div>
In CSS wil ik de a:hover
voor deze menu-items op een bepaalde kleur instellen. Dus ik schrijf:
.menu a:hover
{
color:#DDD;
}
Maar ik wil deze a:hover
-kleur alleen instellen voor die <a>
-tags met de klasse main-nav-itemen niet de main-nav-item-current, omdat deze een andere kleur heeft en niet zou moeten veranderen bij de muisaanwijzer. Alle <a>
-tags in de menudiv moeten van kleur veranderen bij het aanwijzen, behalve degene met de huidigeklasse.
Hoe kan ik dit doen met CSS?
Ik heb zoiets geprobeerd
.menu a:hover .main-nav-item
{
color:#DDD;
}
in de veronderstelling dat alleen degenen met de klasse hoofd-nav-item van kleur zullen veranderen bij de muisaanwijzer, en niet de huidige. Maar het werkt niet.
Antwoord 1, autoriteit 100%
Probeer dit:
.menu a.main-nav-item:hover { }
Om te begrijpen hoe dit werkt, is het belangrijk om dit te lezen zoals de browser dat doet. De a
definieert het element, de .main-nav-item
kwalificeerthet element alleen voor degenen die die klasse hebben, en tenslotte de psuedo- class :hover
wordt toegepast op de gekwalificeerde expressie die ervoor komt.
In principe komt het hierop neer:
Pas deze hover-regel toe op alle ankerelementen met de klasse
main-nav-item
die een afstammeling zijn van een element met de klassemenu
.
Antwoord 2, autoriteit 9%
Cascading is je bijten. Probeer dit:
.menu > .main-nav-item:hover
{
color:#DDD;
}
Deze code zegt dat je alle links moet pakken die een klasse van main-nav-item hebben EN onderliggende zijn van het klassenmenu, en de kleur #DDD moeten toepassen wanneer ze de muisaanwijzer erop houden.
Antwoord 3, autoriteit 4%
Stel a:hover in op basis van klasse die u eenvoudig kunt proberen:
a.main-nav-item:hover { }
Antwoord 4
hoe zit het met
.main-nav-item:hover
dit houdt de specificiteit laag
Antwoord 5
probeer dit
.div
{
text-decoration:none;
font-size:16;
display:block;
padding:14px;
}
.div a:hover
{
background-color:#080808;
color:white;
}
laten we zeggen dat we een ankertag hebben gebruikt in onze code en class “div” wordt aangeroepen in het hoofdprogramma. de a:hover zal het ding doen, het geeft een vampierzwarte kleur aan de achtergrond en een witte kleur aan de tekst wanneer de muis erover wordt bewogen, dat is wat hover betekent.
Antwoord 6
Een veelvoorkomende fout is het achterlaten van een spatie voor de klassenamen. Zelfs als dit de juiste syntaxis was:
.menu a:hover .main-nav-item
het zou nooit hebben gewerkt.
Daarom zou je niet schrijven
.menu a .main-nav-item:hover
het zou zijn
.menu a.main-nav-item:hover
Antwoord 7
Ik heb ontdekt dat als je een !important
toevoegt, het werkt als het voorheen niet werkte.
a.main-nav-item:link {
color: blue !important;
}
a.main-nav-item:visited {
color: red !important;
}
a.main-nav-item:hover {
color: purple !important;
}
a.main-nav-item:focus {
color: green !important;
}
a.main-nav-item:active {
color: green !important;
}
Ook heb ik ergens gelezen dat de volgorde belangrijk is. Het geheugensteuntje “LoVe HaTe” helpt je het te onthouden: link -> bezocht -> zweven -> actief