<section class="grid">
<article class="grid-item">
<a href="#" title="View Article">
<div class="image">
<img src="https://dummyimage.com/500x16:9/" class="object-fit cover">
</div>
<div class="info">
<h2>Article Title</h2>
<div class="copy">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam vestibulum ante id erat commodo fringilla. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam vestibulum ante id erat commodo fringilla.</p>
</div>
<div class="button-wrap">
<span class="btn">Read More</span>
</div>
</div>
</a>
</article>
<article class="grid-item">
<a href="#" title="View Article">
<div class="image">
<img src="https://dummyimage.com/500x16:9/" class="object-fit cover">
</div>
<div class="info">
<h2>Article Title</h2>
<div class="copy">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam vestibulum ante id erat commodo fringilla.</p>
</div>
<div class="button-wrap">
<span class="btn">Read More</span>
</div>
</div>
</a>
</article>
<article class="grid-item">
<a href="#" title="View Article">
<div class="image">
<img src="https://dummyimage.com/500x16:9/" class="object-fit cover">
</div>
<div class="info">
<h2>Article Title</h2>
<div class="copy">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam vestibulum ante id erat commodo fringilla.</p>
</div>
<div class="button-wrap">
<span class="btn">Read More</span>
</div>
</div>
</a>
</article>
<article class="grid-item">
<a href="#" title="View Article">
<div class="image">
<img src="https://dummyimage.com/500x16:9/" class="object-fit cover">
</div>
<div class="info">
<h2>Article Title</h2>
<div class="copy">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam vestibulum ante id erat commodo fringilla.</p>
</div>
<div class="button-wrap">
<span class="btn">Read More</span>
</div>
</div>
</a>
</article>
<article class="grid-item">
<a href="#" title="View Article">
<div class="image">
<img src="https://dummyimage.com/500x16:9/" class="object-fit cover">
</div>
<div class="info">
<h2>Article Title</h2>
<div class="copy">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam vestibulum ante id erat commodo fringilla.</p>
</div>
<div class="button-wrap">
<span class="btn">Read More</span>
</div>
</div>
</a>
</article>
<article class="grid-item">
<a href="#" title="View Article">
<div class="image">
<img src="https://dummyimage.com/500x16:9/" class="object-fit cover">
</div>
<div class="info">
<h2>Article Title</h2>
<div class="copy">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam vestibulum ante id erat commodo fringilla.</p>
</div>
<div class="button-wrap">
<span class="btn">Read More</span>
</div>
</div>
</a>
</article>
<article class="grid-item">
<a href="#" title="View Article">
<div class="image">
<img src="https://dummyimage.com/500x16:9/" class="object-fit cover">
</div>
<div class="info">
<h2>Article Title</h2>
<div class="copy">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam vestibulum ante id erat commodo fringilla.</p>
</div>
<div class="button-wrap">
<span class="btn">Read More</span>
</div>
</div>
</a>
</article>
<article class="grid-item">
<a href="#" title="View Article">
<div class="image">
<img src="https://dummyimage.com/500x16:9/" class="object-fit cover">
</div>
<div class="info">
<h2>Article Title</h2>
<div class="copy">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam vestibulum ante id erat commodo fringilla.</p>
</div>
<div class="button-wrap">
<span class="btn">Read More</span>
</div>
</div>
</a>
</article>
</section>
*, *:before, *:after {
box-sizing: border-box;
}
.grid {
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr;
column-gap: 30px;
row-gap: 30px;
padding: 30px;
@media only screen and (max-width: 1260px) {
grid-template-columns: 1fr 1fr 1fr;
}
@media only screen and (max-width: 1000px) {
grid-template-columns: 1fr 1fr;
}
@media only screen and (max-width: 600px) {
grid-template-columns: 1fr;
}
}
.grid-item {
box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.16);
transition: box-shadow .3s;
a {
display: block;
width: 100%;
height: 100%;
text-decoration: none;
color: inherit;
&:hover .copy{
overflow: visible;
display: block !important;
}
}
.image {
height: 200px;
}
.info {
position: relative;
height: calc(100% - 200px);
padding: 25px 25px 86px 25px;
}
.button-wrap {
display: block;
width: calc(100% - 50px);
position: absolute;
bottom: 25px;
left: 25px;
}
&:hover {
box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.3);
.btn {
box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.3);
}
}
&:active {
.btn {
box-shadow: 0px 3px 6px rgba(0, 0, 0, 0);
}
}
}
h2 {
margin-bottom: 0.5em;
font-size: 1.4rem;
font-weight: bold;
}
.copy {
display: box;
box-orient: vertical;
overflow: hidden;
line-clamp: 3;
p {
margin-bottom: 0.5em;
line-height: 1.2em;
&:last-child {
margin-bottom: 0;
}
}
}
.btn {
display: inline-block;
width: auto;
height: auto;
border: 0;
border-radius: 0;
padding: 15px 25px;
background: rgb(204,204,204);
box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.16);
transition: box-shadow .3s;
color: #000;
}
.object-fit {
display: block;
width: 100%;
height: 100% !important;
&.cover {
object-fit: cover;
}
&.contain {
object-fit: contain;
}
}
View Compiled
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.