91 lines
2.4 KiB
Markdown
91 lines
2.4 KiB
Markdown
|
---
|
||
|
title: Hover
|
||
|
---
|
||
|
## Hover
|
||
|
The `selector:hover` pseudo-class is triggered when you interact with the element (selector) with a pointing device generally a mouse pointer. The styles of the element hovered over will be overridden by style defined in `selector:hover` pseudo-class.<br>
|
||
|
To style links/elements properly the rules should be defined in the order :- <br>
|
||
|
:link - :visited - :hover - :active
|
||
|
|
||
|
**Syntax :**
|
||
|
```css
|
||
|
selector:hover {
|
||
|
css declarations;
|
||
|
}
|
||
|
```
|
||
|
|
||
|
## More Examples
|
||
|
Below are some more complex examples of what you can do with the `:hover` pseudo-class. Keep in mind that the `.second` div **must** come after the `.first ` div in all of these examples.
|
||
|
|
||
|
1. When you hover over an element change an adjacent sibling.
|
||
|
|
||
|
```html
|
||
|
<style>
|
||
|
.first:hover + .second {
|
||
|
background-color: blue;
|
||
|
}
|
||
|
</style>
|
||
|
|
||
|
<div class="first">First</div>
|
||
|
<div class="second">Second</div>
|
||
|
```
|
||
|
|
||
|
The code above will change the background color of `.second` to blue when you hover over `.first`.
|
||
|
|
||
|
2. When you hover over an element change a general sibling.
|
||
|
|
||
|
```html
|
||
|
<style>
|
||
|
.first:hover ~ .second {
|
||
|
background-color: blue;
|
||
|
}
|
||
|
</style>
|
||
|
|
||
|
<div class="first">First</div>
|
||
|
<div class="middle">Middle</div>
|
||
|
<div class="second">Second</div>
|
||
|
```
|
||
|
|
||
|
This example gives a little bit more flexibility as the two elements no longer have to be directly adjacent.
|
||
|
|
||
|
3. When you hover over an element change a direct descendant.
|
||
|
|
||
|
```html
|
||
|
<style>
|
||
|
.first:hover > .second {
|
||
|
background-color: blue;
|
||
|
}
|
||
|
</style>
|
||
|
|
||
|
<div class="first">
|
||
|
First
|
||
|
<div class="second">Second</div>
|
||
|
</div>
|
||
|
```
|
||
|
|
||
|
The code above will change the background color of `.second` to blue when you hover over `.first`.
|
||
|
|
||
|
4. When you hover over an element change a general descendant.
|
||
|
|
||
|
```html
|
||
|
<style>
|
||
|
.first:hover .second {
|
||
|
background-color: blue;
|
||
|
}
|
||
|
</style>
|
||
|
|
||
|
<div class="first">
|
||
|
First
|
||
|
<div class="container">
|
||
|
Container
|
||
|
<div class="second">Second</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
```
|
||
|
|
||
|
As in example 2, this also gives more flexibility as the two elements no longer have to be directly adjacent. You will notice that the hover-able area is bigger in examples 3 and 4. This happens because you are still hovering over `.first` as long as the cursor is over one of its children.
|
||
|
|
||
|
|
||
|
#### More Information:
|
||
|
<a href='https://developer.mozilla.org/en-US/docs/Web/CSS/%3Ahover' target='_blank'>MDN Web Docs</a><br>
|
||
|
<a href='https://www.w3schools.com/cssref/sel_hover.asp' target='_blank'>w3schools</a>
|