Видео 100% ширина и высота

У меня есть видео, и я хочу, чтобы он заполнил 100% ширины и 100% высоты. И сохраните соотношение сторон.

Возможно ли, что он как минимум заполняет 100% для обоих? И если немного видео должно быть вне экрана, чтобы сохранить соотношение сторон, это не имеет значения.

HTML:

    <video preload="auto" class="videot" id="videot" height="100%" preload>
    <source src="BESTANDEN/video/tible.mp4" type="video/mp4" >
    <object data="BESTANDEN/video/tible.mp4" height="1080">
        <param name="wmode" value="transparent">
        <param name="autoplay" value="false" >
        <param name="loop" value="false" >
    </object>

CSS

 .videof, .videot {
    width: 100%    !important;
    height: 100%   !important;
 }

Ответ 1

Вы можете использовать Javascript для динамического определения высоты до 100% окна, а затем центрирования, используя отрицательное левое поле, основанное на соотношении ширины видео и ширины окна.

http://jsfiddle.net/RfV5C/

var $video  = $('video'),
    $window = $(window); 

$(window).resize(function(){
    var height = $window.height();
    $video.css('height', height);

    var videoWidth = $video.width(),
        windowWidth = $window.width(),
    marginLeftAdjust =   (windowWidth - videoWidth) / 2;

    $video.css({
        'height': height, 
        'marginLeft' : marginLeftAdjust
    });
}).resize();

Ответ 2

Проверяя другие ответы, я использовал объектную привязку в CSS:

video {
    object-fit: fill;
}

Из MDN (https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit):

Объектно-ориентированное свойство CSS указывает, как содержимое замененного элемента должно быть установлено в поле, установленное его используемой высотой и шириной.

Значение: заполнить

Замененное содержимое имеет размер, чтобы заполнить поле содержимого элементов: конкретным размером объекта являются элементы, используемые шириной и высотой.

Ответ 4

Если вы ищете эквивалент background-size: cover для video.

video {
  object-fit: cover;
}

Это заполнит контейнер без искажения видео.


PS: Я распространяю Лео Юй.

Ответ 5

Это работает для меня для видео в контейнере div.

.videoContainer 
{
    position:absolute;
    height:100%;
    width:100%;
    overflow: hidden;
}

.videoContainer video 
{
    min-width: 100%;
    min-height: 100%;
}

Ответ 6

Самый простой и отзывчивый.

<body>
  <video src="full.mp4" autoplay muted loop></video>
</body>
video {
  height: 100vh;
  width: 100%;
  object-fit: fill;
  position: absolute;
}

Ответ 7

Я использую JavaScript и CSS для этого. Функция JS нужно вызывать один раз при инициализации и при изменении размера окна. Просто протестирован в Chrome.

HTML:

<video width="1920" height="1080" controls>
    <source src="./assets/video.mp4" type="video/mp4">
    Your browser does not support the video tag.
</video>

JavaScript:

function scaleVideo() {
    var vid = document.getElementsByTagName('video')[0];
    var w = window.innerWidth;
    var h = window.innerHeight;

    if (w/16 >= h/9) {
        vid.setAttribute('width', w);
        vid.setAttribute('height', 'auto');
    } else {
        vid.setAttribute('width', 'auto');
        vid.setAttribute('height', h);
    }
}

CSS

video {
    position:absolute;
    left:50%;
    top:50%;
    -webkit-transform:translate(-50%,-50%);
    transform:translate(-50%,-50%);
}

Ответ 8

Это отличный способ сделать видео подходящим для баннера, вам может потребоваться немного изменить его для полного экрана, но все должно быть в порядке. 100% CSS.

    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 1;
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    transform: translate(-50%, -50%);

Ответ 9

Я новичок во всем этом. Возможно, вы можете просто добавить/изменить этот HTML-код. Без CSS. Это сработало для меня:)

width="100%" height="height"

Ответ 10

Мы попробовали с приведенным ниже кодом, и он работает на Samsung TV, Chrome, IE11, Safari...

<!DOCTYPE html>
<html>
<head>
    <title>Video</title>
    <meta charset="utf-8" />
    <style type="text/css" >

        html,body {
          height: 100%;
          text-align: center;
          margin: 0;
          padding:0;
        }

        video {
            width: 100vw; /*100% of horizontal viewport*/
            height:100vh; /*100% of vertical viewport*/
        }

    </style>
</head>
<body>
        <video preload="auto" class="videot" id="videot" preload>
            <source src="BESTANDEN/video/tible.mp4" type="video/mp4" >
            <object data="BESTANDEN/video/tible.mp4" height="1080">
                <param name="wmode" value="transparent">
                <param name="autoplay" value="false" >
                <param name="loop" value="false" >
            </object>
        </video>
</body>
</html>

Ответ 11

используйте этот CSS для высоты

height: calc(100vh) !important;

Это сделает видео доступным для вертикальной высоты 100%.

Ответ 12

<style>
    .video{position:absolute;top:0;left:0;height:100%;width:100%;object-fit:cover}
  }
</style>
<video class= "video""
  disableremoteplayback=""
  mqn-lazyimage-video-no-play=""
  mqn-video-css-triggers="[{&quot;fire_once&quot;: true, &quot;classes&quot;: [&quot;.mqn2-ciu&quot;], &quot;from&quot;: 1, &quot;class&quot;: &quot;mqn2-grid-1--hero-intro-video-meta-visible&quot;}]"
  mqn-video-inview-no-reset="" mqn-video-inview-play="" muted="" playsinline="" autoplay>

<source src="https://github.com/Slender1808/Web-Adobe-XD/raw/master/Home/0013-0140.mp4" type="video/mp4">

</video>