width
will retain a proportionate height
value.padding-top
on the :before
pseudo-element, making the height
of the element equal to a percentage of its width
.height
to width
can be altered as necessary. For example a padding-top
of 100%
will create a responsive square (1:1 ratio).<div class="constant-width-to-height-ratio"></div>
.constant-width-to-height-ratio { background: #9C27B0; 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; }
Subscribe to get resources directly to your inbox. You won't receive any spam! ✌️