Сохраняйте соотношение сторон 16:9 по ширине и высоте.

Итак, у меня есть это видео, которое я хочу, не совсем полноэкранное, но близкое. Я хочу, чтобы он сохранял соотношение сторон 16:9, но я хочу, чтобы между видео и краем экрана всегда были отступы или пространство. Итак, что у меня есть сейчас, https://jsfiddle.net/99yen3v3/, это:

width: 80vw;
height: 45vw;

для див. Он отлично работает, когда я сжимаю веб-браузер по горизонтали, видео div сохраняет соотношение сторон 16: 9. Единственная проблема заключается в том, что всякий раз, когда я сжимаю веб-браузер по вертикали, видео медленно исчезает с экрана. Я хочу, чтобы такое же дополнение было там, когда я сжимаю веб-браузер по вертикали, если это имеет смысл.

Если у вас есть какие-либо вопросы или вы запутались, просто спросите. Буду признателен за любую помощь, спасибо.

EDIT1: И я уже проверил этот пост, разница только в том, что в этом примере используется соотношение 1:1, а у меня оно сложнее, 16:9.

EDIT2: Нет, мой вопрос не является дубликатом этого. Я четко заявил, что хочу, чтобы div содержался также по высоте окна браузера, а не только по ширине.


person Jacob    schedule 16.11.2017    source источник


Ответы (1)


Вам нужно свойство CSS object-fit со значением contain.

https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit

Поскольку вы используете <video>, это значение по умолчанию. Просто установите размер видео на 100% ширины/высоты и отступы для родителя.

person Brad    schedule 16.11.2017
comment
О даааа... Я забыл про object-fit. Но проблема в том, что на самом деле это не <video>, а iframe (видео на YouTube) - person Jacob; 16.11.2017
comment
Вы должны быть в состоянии использовать object-fit, но кто знает, как себя поведет встраивание YouTube. Вам следует задать новый вопрос, если ваш вопрос на самом деле касается API встроенного проигрывателя YouTube. - person Brad; 16.11.2017
comment
Я не думаю, что это проблема встроенного проигрывателя YouTube. Я просто хочу иметь возможность содержать элемент (будь то iframe или div), сохраняя при этом его соотношение сторон внутри оболочки. - person Jacob; 16.11.2017
comment
@Jacob Проблема в том, что iframe не имеет собственного размера. Материал внутри может. Вам нужно будет установить iframe на полную ширину/высоту и надеяться, что материал YouTube внутри него знает, что делать. - person Brad; 16.11.2017