Heim > Web-Frontend > CSS-Tutorial > Wie ändere ich die Hintergrundfarbe eines übergeordneten Elements beim Hover eines untergeordneten Elements mit CSS?

Wie ändere ich die Hintergrundfarbe eines übergeordneten Elements beim Hover eines untergeordneten Elements mit CSS?

Mary-Kate Olsen
Freigeben: 2024-12-09 01:22:10
Original
950 Leute haben es durchsucht

How to Change a Parent's Background Color on Child Hover with CSS?

Übergeordnete Elemente können mit CSS nicht direkt angesprochen werden

Problem: So ändern Sie die Hintergrundfarbe des übergeordneten Containers, wenn Sie mit der Maus über das untergeordnete Element fahren Element, das nur CSS verwendet?

Lösung: Verwenden von Zeigerereignissen und :hover

Kompatibilität:

  • IE 11 und Edge
  • Chrome
  • Firefox

Schritte:

  1. Zeigerereignisse auf dem übergeordneten Element deaktivieren div: Dies stellt sicher, dass das div :hover ignoriert Ereignisse.
div {
  pointer-events: none;
}
Nach dem Login kopieren
  1. Ändern Sie den übergeordneten Hintergrund beim Bewegen des Mauszeigers: Legen Sie fest, dass sich die Hintergrundfarbe ändert, wenn der Mauszeiger über das übergeordnete Element bewegt wird.
div:hover {
  background: #F00;
}
Nach dem Login kopieren
  1. Zeigerereignisse für das Kind aktivieren: Dadurch kann das Hover-Ereignis nur dann ausgelöst werden, wenn das untergeordnete Element wird mit der Maus bewegt.
div > a {
  pointer-events: auto;
}
Nach dem Login kopieren

Erklärung:

Wenn das untergeordnete Element mit der Maus bewegt wird, wird aufgrund der Zeigerereignisse auch das übergeordnete Div mit der Maus bewegt Eigentum. Allerdings wird die Hover-Pseudoklasse des übergeordneten Elements aufgrund der Einstellung pointer-events: none ignoriert. Durch die Aktivierung von Zeigerereignissen auf dem untergeordneten Element wird das Hover-Ereignis ausschließlich auf dem untergeordneten Element ausgelöst, wodurch sich die Hintergrundfarbe des übergeordneten Elements wie gewünscht ändert.

Hinweis: In IE 11 und Edge das untergeordnete Element muss display: inline-block oder display: block haben, damit Zeigerereignisse ordnungsgemäß funktionieren.

Das obige ist der detaillierte Inhalt vonWie ändere ich die Hintergrundfarbe eines übergeordneten Elements beim Hover eines untergeordneten Elements mit CSS?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage