Reputation: 3584
I am trying to make an overlay effect, but when I hover over the link, the inner content does not appear as full width as you can see from my pen when you hover over the box and the blue pops up
Here my code:
<div id="portfolio">
<a href="" id="id-1" class="portfolio-link">
<div class="portfolio-content">
<div class="portfolio-overlay">
<h5>Paragraph</h5>
</div>
</div>
</a>
<a href="" id="id-2" class="portfolio-link">
<div class="portfolio-content">
<div class="portfolio-overlay">
<h5>Paragraph</h5>
</div>
</div>
</a>
<a href="" id="id-3" class="portfolio-link">
<div class="portfolio-content">
<div class="portfolio-overlay">
<h5>Paragraph</h5>
</div>
</div>
</a>
<a href="" id="id-4" class="portfolio-link">
<div class="portfolio-content">
<div class="portfolio-overlay">
<h5>Paragraph</h5>
</div>
</div>
</a>
</div>
CSS:
h5{
visibility: hidden;
}
div#portfolio {
display: flex;
flex-wrap: wrap;
}
div#portfolio a,
div#portfolio a > div{
width: 100%;
max-width: 25%;
height: 300px;
display: flex;
justify-content: center;
align-items: center;
}
div#portfolio a {
background-size: cover;
background-position: 50%;
}
div#portfolio a:hover > div{
background-color: blue;
}
div#portfolio a:hover h5{
visibility: visible;
transition: visibility .5s;
-webkit-transition: visibility .5s;
}
#id-1{
background-image: url(images/Sidney-web2web.png);
background-color: black;
}
#id-2{
background-image: url(images/Sidney-web2web.png);
background-color: red;
}
How can I make that blue occupy the entire box?
Hope you can help
Upvotes: 0
Views: 108
Reputation: 158
Simply split this:
div#portfolio a,
div#portfolio a > div{
width: 100%;
max-width: 25%;
height: 300px;
display: flex;
justify-content: center;
align-items: center;
}
to this:
div#portfolio a {
width: 100%;
max-width: 25%;
height: 300px;
display: flex;
justify-content: center;
align-items: center;
}
div#portfolio a > div{
width: 100%;
height: 300px;
display: flex;
justify-content: center;
align-items: center;
}
Upvotes: 0
Reputation: 4622
I've added position:absolute;
inside your hover:
div#portfolio a:hover > div{
background-color: blue;
position:absolute;
}
See full code below:
h5{
visibility: hidden;
}
div#portfolio {
display: flex;
flex-wrap: wrap;
}
div#portfolio a,
div#portfolio a > div{
width: 100%;
max-width: 25%;
height: 300px;
display: flex;
justify-content: center;
align-items: center;
}
div#portfolio a {
background-size: cover;
background-position: 50%;
}
div#portfolio a:hover > div{
background-color: blue;
position:absolute;
}
div#portfolio a:hover h5{
visibility: visible;
transition: visibility .5s;
-webkit-transition: visibility .5s;
}
#id-1{
background-image: url(images/Sidney-web2web.png);
background-color: black;
}
#id-2{
background-image: url(images/Sidney-web2web.png);
background-color: red;
}
<div id="portfolio">
<a href="" id="id-1" class="portfolio-link">
<div class="portfolio-content">
<div class="portfolio-overlay">
<h5>Paragraph</h5>
</div>
</div>
</a>
<a href="" id="id-2" class="portfolio-link">
<div class="portfolio-content">
<div class="portfolio-overlay">
<h5>Paragraph</h5>
</div>
</div>
</a>
<a href="" id="id-3" class="portfolio-link">
<div class="portfolio-content">
<div class="portfolio-overlay">
<h5>Paragraph</h5>
</div>
</div>
</a>
<a href="" id="id-4" class="portfolio-link">
<div class="portfolio-content">
<div class="portfolio-overlay">
<h5>Paragraph</h5>
</div>
</div>
</a>
</div>
Hope this helps!
Upvotes: 1