Skip to content

Instantly share code, notes, and snippets.

@brianmcallister
Last active December 9, 2022 20:18
Show Gist options
  • Star 33 You must be signed in to star a gist
  • Fork 6 You must be signed in to fork a gist
  • Save brianmcallister/2932463 to your computer and use it in GitHub Desktop.
Save brianmcallister/2932463 to your computer and use it in GitHub Desktop.
Sass mixin for a responsive box that maintains an aspect ratio.
// Maintain ratio mixin. Great for responsive grids, or videos.
// https://gist.github.com/brianmcallister/2932463
//
// $ratio - Ratio the element needs to maintain.
//
// Examples
//
// // A 16:9 ratio would look like this:
// .element {
// @include maintain-ratio(16 9);
// }
@mixin maintain-ratio($ratio: 1 1) {
@if length($ratio) < 2 or length($ratio) > 2 {
@warn "$ratio must be a list with two values.";
}
$width: 100%;
$height: percentage(nth($ratio, 2) / nth($ratio, 1));
width: $width;
height: 0;
padding-bottom: $height;
}
@pkrey
Copy link

pkrey commented Jul 17, 2013

Don't forget the semicolon...
@warn "$ratio must be a list with two values.";

@profjsb
Copy link

profjsb commented Sep 15, 2016

Brian,
What's the license for the use of this gist?

@mikemaccana
Copy link

Note this fails in the current Firefox

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment