Responsive images in CSS are pretty easy: just set the width: 100%
and height: auto
and you're good to go. Things get a little unpredictable, though, when dealing with background images. Since putting a height on the element causes lots of responsive headaches, one workaround is to have the container scale by its aspect ratio. This can be achieved by setting a few attributes to the element's :after
tag:
.my-element {
overflow: hidden;
position: relative;
}
.my-element:after {
content: "";
display: block;
height: 0;
padding-top: 56.25%; /* Aspect ratio = height divided width times 100 */
}
See a CSS demo, or grab this handy Sass mixin.
Daniel Box
Designer, KNI
Good little trick ;)