Skip to content

Instantly share code, notes, and snippets.

@ggarek
Last active February 15, 2017 18:07
Show Gist options
  • Save ggarek/1131f076eea0b53f242796042c90763d to your computer and use it in GitHub Desktop.
Save ggarek/1131f076eea0b53f242796042c90763d to your computer and use it in GitHub Desktop.
CSS Goodies #1

Statement: How to make a block to have proper height based on the given width and dimensions ratio.

Origin | This demo

tags: html, css, layout, keep ratio, 4x3, 16x19, aspect, height

<!doctype html>
<html>
<head>
<meta charset=utf-8>
</head>
<body>
<!-- This guy get its "width" dimension -->
<div class="container-with-dimensions">
<!-- This guy wraps the main guy - one whos ratio we want to keep -->
<div class="aspect aspect-wrapper">
<!-- This guy does the magic (stretch parent to the proper height) -->
<div class="ratio-4x3"></div>
<!-- The main guy! Now he has proper width and height -->
<div class="mydiv aspect-content">
</div>
</div>
</div>
</body>
</html>
/* Solution framework */
.aspect {
&.aspect-wrapper {
width: 100%;
position: relative;
& > .aspect-content {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
}
& > .ratio-4x3 { padding-bottom: 75%; }
& > .ratio-1x1 { padding-bottom: 100%; }
& > .ratio-3x2 { padding-bottom: 66.666% }
& > .ratio-16x9 { padding-bottom: 56.25% }
}
}
/* Styles for demo */
body {
width: 36%;
padding: 0 32%;
}
.container-with-dimensions {
width: 75%;
border: 1px solid yellow;
}
.mydiv {
border: 1px solid red;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment