mirror of
https://github.com/twbs/bootstrap.git
synced 2024-12-10 22:24:19 +01:00
63 lines
2.4 KiB
Markdown
63 lines
2.4 KiB
Markdown
|
---
|
||
|
layout: docs
|
||
|
title: Ratios
|
||
|
description: Use generated psuedo elements to make an element maintain the aspect ratio of your choosing. Perfect for responsively handling video or slideshow embeds based on the width of the parent.
|
||
|
group: helpers
|
||
|
toc: true
|
||
|
---
|
||
|
|
||
|
## About
|
||
|
|
||
|
Rules are directly applied to `<iframe>`, `<embed>`, `<video>`, and `<object>` elements. You can also use an explicit use an explicit descendant class, `.ratio-item`, when you want to match the styling for other attributes. Aspect ratios are declared in a Sass map and included in each class via CSS variable, which also allows [custom aspect ratios](#custom-ratios).
|
||
|
|
||
|
{{< callout info >}}
|
||
|
**Pro-Tip!** You don't need `frameborder="0"` on your `<iframe>`s as we override that for you in [Reboot]({{< docsref "/content/reboot" >}}).
|
||
|
{{< /callout >}}
|
||
|
|
||
|
## Example
|
||
|
|
||
|
Wrap any embed, like an `<iframe>`, in a parent element with `.ratio` and an aspect ratio class. As mentioned above, the `.ratio-item` isn't strictly required, but we encourage it.
|
||
|
|
||
|
{{< example >}}
|
||
|
<div class="ratio ratio-16x9">
|
||
|
<iframe class="ratio-item" src="https://www.youtube.com/embed/zpOULjyy-n8?rel=0" title="YouTube video" allowfullscreen></iframe>
|
||
|
</div>
|
||
|
{{< /example >}}
|
||
|
|
||
|
## Aspect ratios
|
||
|
|
||
|
Aspect ratios can be customized with modifier classes. By default the following ratio classes are provided:
|
||
|
|
||
|
{{< example html >}}
|
||
|
<div class="ratio ratio-1x1" style="width: 10rem;">
|
||
|
<div class="ratio-item">1x1</div>
|
||
|
</div>
|
||
|
<div class="ratio ratio-4x3" style="width: 10rem;">
|
||
|
<div class="ratio-item">4x3</div>
|
||
|
</div>
|
||
|
<div class="ratio ratio-16x9" style="width: 10rem;">
|
||
|
<div class="ratio-item">16x9</div>
|
||
|
</div>
|
||
|
<div class="ratio ratio-21x9" style="width: 10rem;">
|
||
|
<div class="ratio-item">21x9</div>
|
||
|
</div>
|
||
|
{{< /example >}}
|
||
|
|
||
|
## Custom ratios
|
||
|
|
||
|
Each `.ratio-*` class includes a CSS custom property (or CSS variable) in the selector. You can override this CSS variable to create custom aspect ratios on the fly with some quick math on your part.
|
||
|
|
||
|
For example, to create a 2x1 aspect ratio, set `--aspect-ratio: 50%` on the `.ratio`.
|
||
|
|
||
|
{{< example html >}}
|
||
|
<div class="ratio" style="--aspect-ratio: 50%; width: 10rem;">
|
||
|
<div class="ratio-item">2x1</div>
|
||
|
</div>
|
||
|
{{< /example >}}
|
||
|
|
||
|
## Sass map
|
||
|
|
||
|
Within `_variables.scss`, you can change the aspect ratios you want to use. Here's our default `$ratio-aspect-ratios` map. Modify the map as you like and recompile your Sass to put them to use.
|
||
|
|
||
|
{{< scss-docs name="aspect-ratios" file="scss/_variables.scss" >}}
|