<div id="container">
<!-- Controls for 'Read More', by the :checked state -->
<input type="checkbox" id="read-more">
<label for="read-more"></label>
<div id="content">
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Nostrum est corporis accusantium velit! Vero qui assumenda voluptatibus. Perferendis omnis adipisci commodi sapiente! Deleniti iste asperiores soluta, adipisci excepturi recusandae aperiam.</p>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Nostrum est corporis accusantium velit! Vero qui assumenda voluptatibus. Perferendis omnis adipisci commodi sapiente! Deleniti iste asperiores soluta, adipisci excepturi recusandae aperiam.</p>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Nostrum est corporis accusantium velit! Vero qui assumenda voluptatibus. Perferendis omnis adipisci commodi sapiente! Deleniti iste asperiores soluta, adipisci excepturi recusandae aperiam.</p>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Nostrum est corporis accusantium velit! Vero qui assumenda voluptatibus. Perferendis omnis adipisci commodi sapiente! Deleniti iste asperiores soluta, adipisci excepturi recusandae aperiam.</p>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Nostrum est corporis accusantium velit! Vero qui assumenda voluptatibus. Perferendis omnis adipisci commodi sapiente! Deleniti iste asperiores soluta, adipisci excepturi recusandae aperiam.</p>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Nostrum est corporis accusantium velit! Vero qui assumenda voluptatibus. Perferendis omnis adipisci commodi sapiente! Deleniti iste asperiores soluta, adipisci excepturi recusandae aperiam.</p>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Nostrum est corporis accusantium velit! Vero qui assumenda voluptatibus. Perferendis omnis adipisci commodi sapiente! Deleniti iste asperiores soluta, adipisci excepturi recusandae aperiam.</p>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Nostrum est corporis accusantium velit! Vero qui assumenda voluptatibus. Perferendis omnis adipisci commodi sapiente! Deleniti iste asperiores soluta, adipisci excepturi recusandae aperiam.</p>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Nostrum est corporis accusantium velit! Vero qui assumenda voluptatibus. Perferendis omnis adipisci commodi sapiente! Deleniti iste asperiores soluta, adipisci excepturi recusandae aperiam.</p>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Nostrum est corporis accusantium velit! Vero qui assumenda voluptatibus. Perferendis omnis adipisci commodi sapiente! Deleniti iste asperiores soluta, adipisci excepturi recusandae aperiam.</p>
</div>
</div>
body {
font-family: Helvetica;
font-size: 15px;
background-color: #eee;
margin: 40px;
}
#container {
position: relative;
width: 300px;
margin: auto;
overflow: hidden;
border-radius: 6px;
}
#content {
padding: 30px;
background-color: #fff;
height: 400px;
font-size: 1.2rem;
line-height: 1.5rem;
color: #333;
}
p {
margin: 0 0 30px;
}
#read-more {
display: none;
}
#read-more + label {
display: block;
position: absolute;
width: 100%;
height: 150px;
bottom: 0;
left: 0;
background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, #fff 70%);
pointer-events: none;
}
#read-more + label::after {
content: 'Read More';
display: inline-block;
position: absolute;
bottom: 20px;
left: 50%;
transform: translateX(-50%);
background-color: #333;
font-size: 1.2rem;
color: #fff;
padding: 8px 14px;
border-radius: 4px;
box-shadow: 0px 2px 2px rgba(0, 0, 0, .2);
cursor: pointer;
pointer-events: auto;
}
#read-more + label:hover::after {
background-color: #000;
}
#read-more:checked ~ #content {
height: auto;
}
#read-more:checked + label {
display: none;
}