AI Workshop: learn to build apps with AI →
CSS Tips: Responsive YouTube Video Embeds

Join the AI Workshop and learn to build real-world apps with AI. A hands-on, practical program to level up your skills.


The problem with embedding YouTube videos is that the embed is an iframe, and iframes need a fixed height and width or they will look off.

And we need to keep the proportions, based on the video aspect ratio.

To display a YouTube video responsively, wrap it in a container div:

<div class="video-container">
  <iframe src="https://www.youtube.com/embed/...." frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>

Then add this CSS to your site:

.video-container {
    overflow: hidden;
    position: relative;
    width:100%;
}

.video-container::after {
    padding-top: 56.25%;
    display: block;
    content: '';
}

.video-container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

See that magic number, 56.25%? That’s needed as a padding when the aspect ratio of a video is 16:9. (9 ÷ 16 = 56.25%).

If your video is 4:3 for example, set it to 75%.

Lessons in this unit:

0: Introduction
1: How to center an element with CSS
2: CSS Border inside the element
3: What are good CSS Breakpoint values for Responsive Design?
4: How to debug CSS by bisecting
5: How to disable text selection using CSS
6: How to put an item at the bottom of its container using CSS
7: CSS, how to select elements that do not have a class
8: How to stick an element on the bottom of the page with flexbox
9: How to apply padding to multiple lines in CSS
10: Making a table responsive using CSS
11: CSS url()
12: How to make an element smaller or bigger with CSS
13: Customizing visited links
14: Fix extra space after inline element
15: How to create a sidebar that’s sticky but also scrolls
16: How to embed YouTube videos using the correct aspect ratio
17: Responsive pre tags in CSS
18: ▶︎ Responsive YouTube Video Embeds
19: How to remove all CSS from a page at once
20: How I added Dark Mode to my website
21: How to add a simple dark mode