Behoud Aspect Ratio Mixin - CSS-trucs

Anonim

Dit artikel uit juli 2013 beschrijft een methode om psuedo-elementen te gebruiken om een ​​aspectverhouding van elementen te behouden, zelfs als deze wordt geschaald.

Hier is een Sass-mixin die de wiskunde een beetje vereenvoudigt.

@mixin aspect-ratio($width, $height) ( position: relative; &:before ( display: block; content: ""; width: 100%; padding-top: ($height / $width) * 100%; ) > .content ( position: absolute; top: 0; left: 0; right: 0; bottom: 0; ) )

De mixin gaat ervan uit dat je een element nestelt met de inhoudsklasse in je eerste blok. Zoals dit:

 insert content here this will maintain a 16:9 aspect ratio 

Het gebruik van de mixin is zo eenvoudig als:

.sixteen-nine ( @include aspect-ratio(16, 9); )

Resultaat:

.sixteen-nine ( position: relative; ) .sixteen-nine:before ( display: block; content: ""; width: 100%; padding-top: 56.25%; ) .sixteen-nine > .content ( position: absolute; top: 0; left: 0; right: 0; bottom: 0; )

Demo

Hier is een demo die de bovenstaande code in actie laat zien. De animatie wordt toegevoegd om te laten zien dat het element de toegewezen hoogte-breedteverhouding behoudt terwijl het formaat wordt gewijzigd.

Zie de demo over de beeldverhouding van de pen behouden door Sean Dempsey (@seanseansean) op CodePen.

Met dank aan Sean Dempsey (@thatseandempsey) voor deze!