Embeds / Ratio

Bootstrap 5 Ratio / Embed utilities

Create responsive video or images based on the width of the parent by creating an intrinsic ratio that scales on any device.


Basic example

Use the ratio helper to manage the aspect ratios of external content like <iframe>s, <embed>s, <video>s, and <object>s. These helpers also can be used on any standard HTML child element (e.g., a <div> or <img>). Styles are applied from the parent .ratio class directly to the child.

Wrap any embed, like an <iframe>, in a parent element with .ratio and an aspect ratio class. The immediate child element is automatically sized thanks to our universal selector .ratio > *.

        
            
          <div class="ratio ratio-16x9">
            <iframe
              src="https://www.youtube.com/embed/vlDzYIIOYmM"
              title="YouTube video"
              allowfullscreen
            ></iframe>
          </div>
        
        
    

Aspect ratios

Aspect ratios can be customized with modifier classes. By default the following ratio classes are provided:

        
            
            <div class="ratio ratio-1x1">
              <div>1x1</div>
            </div>
            <div class="ratio ratio-4x3">
              <div>4x3</div>
            </div>
            <div class="ratio ratio-16x9">
              <div>16x9</div>
            </div>
            <div class="ratio ratio-21x9">
              <div>21x9</div>
            </div>
            
        
    

Within _variables.scss, you can change the aspect ratios you want to use. Here’s an example of the $aspect-ratios map:

        
            
          $aspect-ratios: (
            "1x1": 100%,
            "4x3": calc(3 / 4 * 100%),
            "16x9": calc(9 / 16 * 100%),
            "21x9": calc(9 / 21 * 100%)
          );