* Add autoscoping with generated demo * Remove manual demo from all snippets * Add JavaScript inside IIFE * Align mouse-cursor-gradient-tracking.md to demo code * Match snippets to demo * Update CONTRIBUTING.md * Create reusable function for code extraction
985 B
985 B
Constant width to height ratio
Given an element of variable width, it will ensure its height remains proportionate in a responsive fashion (i.e., its width to height ratio remains constant).
HTML
<div class="constant-width-to-height-ratio"></div>
CSS
.constant-width-to-height-ratio {
background: #333;
width: 50%;
}
.constant-width-to-height-ratio::before {
content: '';
padding-top: 100%;
float: left;
}
.constant-width-to-height-ratio::after {
content: '';
display: block;
clear: both;
}
Demo
Explanation
padding-top on the ::before pseudo-element causes the height of the element to equal a percentage of
its width. 100% therefore means the element's height will always be 100% of the width, creating a responsive
square.
This method also allows content to be placed inside the element normally.
Browser support
✅ No caveats.