Responsive "Full Div" YouTube video

Is there a way to put an YouTube video in a div background, like the following site does with a <video> tag, the video "covering" the div (that is, no empty spaces left, keeping the original ratio)?

Knowing that the recommended way to display a YouTube video actually in HTML5 is an iframe:

<iframe width="420" height="315"

enter image description here

I tried to simulate the same behavior on this codePen.

2 answers

  • answered 2018-02-23 11:19 ThomasV

    Try this:

    <!DOCTYPE html>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    * {
        box-sizing: border-box;
    body {
        margin: 0;
        font-family: Arial;
        font-size: 17px;
    #myVideo {
        position: fixed;
        right: 0;
        bottom: 0;
        min-width: 100%; 
        min-height: 100%;
    .content {
        position: fixed;
        bottom: 0;
        background: rgba(0, 0, 0, 0.5);
        color: #f1f1f1;
        width: 100%;
        padding: 20px;
    #myBtn {
        width: 200px;
        font-size: 18px;
        padding: 10px;
        border: none;
        background: #000;
        color: #fff;
        cursor: pointer;
    #myBtn:hover {
        background: #ddd;
        color: black;
    <video autoplay muted loop id="myVideo">
      <source src="" type="video/mp4">
      Your browser does not support HTML5 video.
    <div class="content">
      <p>Lorem ipsum dolor sit amet, an his etiam torquatos. Tollit soleat phaedrum te duo, eum cu recteque expetendis neglegentur. Cu mentitum maiestatis persequeris pro, pri ponderum tractatos ei. Id qui nemore latine molestiae, ad mutat oblique delicatissimi pro.</p>
      <button id="myBtn" onclick="myFunction()">Pause</button>
    var video = document.getElementById("myVideo");
    var btn = document.getElementById("myBtn");
    function myFunction() {
      if (video.paused) {;
        btn.innerHTML = "Pause";
      } else {
        btn.innerHTML = "Play";

  • answered 2018-02-23 11:19 rastrano

    Here's a solution:

      width: 100%;
      height: 100vh;
      position: fixed;
      z-index: 0;