CSS - Panel Expander
More... button at end
by Ben Clayton
HTML
<div class="content">
<div class="expander">
<div class="expand-header">
Filter/tag name here
</div>
<div class="orignal-content">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent porta lectus nec massa euismod vehicula. Sed sodales accumsan erat, ut pharetra libero molestie vitae.
</div>
<input id="uniq1" class="expand-control" type="checkbox" />
<div class="expand-panel">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent porta lectus nec massa euismod vehicula. Sed sodales accumsan erat, ut pharetra libero molestie vitae.
</div>
<label class="expand-label" for="uniq1"></label>
</div>
</div>
CSS
/* Structural CSS */
.content {
width: 300px;
margin: 0px auto;
}
.expander {
border: 1px solid gray;
padding: 4px;
/* padding-bottom: 25px; */
margin-bottom: 20px;
position: relative;
}
.expander .expand-header {
height: 23px;
}
.expander .expand-panel {
max-height:0px;/* use display:none for snap open/close */
transition: max-height 1s ease-in-out;
margin-top: 10px;
margin-bottom:4px;
padding: 0px;
overflow:hidden;
}
.expander .expand-control:checked~.expand-panel {
max-height: 400px;
}
.expander .expand-control,
.expander .expand-label {
float: right;
position: absolute;
bottom: 5px;
right: 5px;
cursor: pointer;
}
/* the expand panel must be a follow sibling or child of checkbox element */
.expander .expand-control {
display: none;
}
/* styling */
.expander input[type='checkbox'].expand-control~label:before {
content: "...more";
font-size: 1rem;
line-height: 20px;
display: block;
/* background-color: #C0C0FF;
border: 1px solid red; */
text-align: center;
cursor: pointer;
margin-left: 5px;
padding-left: 5px;
padding-right: 5px;
}
.expander input[type='checkbox'].expand-control:checked~label:before {
content: "...less";
}