Reputation: 938
I built this snippet to highlight paragraphs on hover by using a pseudo element:
.wrapper {
/* background: #ccc; */
}
p {
position: relative;
padding: 0.5em 1em;
margin: 0em;
}
p:hover::after {
height: 100%;
display: block;
position: absolute;
top: 0;
right: 0;
left: 0;
width: 100%;
background: orange;
content: '';
z-index: -1;
border-radius: 7px;
}
<div class="wrapper">
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.</p>
<p>Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem et ea rebum.</p>
<p>takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
</div>
As long as the wrapping div hasn't a background color applied, above code is working fine. But as soon as the wrapper gets a background color, the highlighting pseudo element is hidden. Adjusting z-index doesn't help.
.wrapper {
background: #ccc;
}
p {
position: relative;
padding: 0.5em 1em;
margin: 0em;
}
p:hover::after {
height: 100%;
display: block;
position: absolute;
top: 0;
right: 0;
left: 0;
width: 100%;
background: orange;
content: '';
z-index: -1;
border-radius: 7px;
}
<div class="wrapper">
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.</p>
<p>Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem et ea rebum.</p>
<p>takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
</div>
Upvotes: 0
Views: 89
Reputation: 1491
You need to add a another z-index to one of your classes, see the below for a working solution. Notice how I have added z-index:50;
to the actual p
tag.
.wrapper {
background: #ccc;
}
p {
position: relative;
padding: 0.5em 1em;
margin: 0em;
z-index:50;
}
p:hover::after {
height: 100%;
display: block;
position: absolute;
top: 0;
right: 0;
left: 0;
width: 100%;
background: orange;
content: '';
z-index: -1;
border-radius: 7px;
}
<div class="wrapper">
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.</p>
<p>Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem et ea rebum.</p>
<p>takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
</div>
Upvotes: 4