Видео не принимает высоту своего родителя.

Вопрос или проблема

<style>
.gl {
    ширина: 50%;
}
.pl {
    ширина: 100%;
    максимальная-высота: 50vh;
    фон: красный;
}
video {
    отображение: блок;
    высота: 100%;
   Margin: 0 авто;
}
</style>
<div class="gl">
    <div class="pl">
    <video  src="https://superuser.com/1111.mp4"></video>
    </div>
</div>

введите описание изображения здесь

Соотношение сторон видео может варьироваться. Высокое, узкое, широкое и высокое и т.д…

В моем примере проблема в том, что видео игнорирует максимальный предел ширины max-height: 50vh;

Логически, видео выровнено по горизонтали, но его высота выходит за пределы красного холста.

В этом случае, как я могу заставить видео соответствовать максимальной высоте родительского элемента?

Ответ или решение

Для решения проблемы, когда видео не принимает высоту своего родителя, необходимо внести небольшие изменения в CSS, чтобы обеспечить, что видео адаптируется в соответствии с максимальной высотой, установленной для своего контейнера. В данной ситуации, когда у нас есть ограничение на высоту в 50vh для класса .pl, видео должно быть настроено так, чтобы вписываться в этот контейнер.

Вот шаги, которые помогут сделать это:

  1. Установите для видео свойство CSS max-height, равное 100%, чтобы оно не превышало высоту родительского контейнера.
  2. Попробуйте использовать свойство object-fit, чтобы контролировать, как содержимое видео будет встраиваться в отведенное пространство.

Вот обновленный CSS-код:

<style>
.gl {
    width: 50%;
}
.pl {
    width: 100%;
    max-height: 50vh;
    background: red;
    overflow: hidden; /* Скрывает все, что выходит за границы контейнера */
}
video {
    display: block;
    width: 100%; /* Позволяет видео занимать всю ширину родителя */
    max-height: 100%; /* Устанавливает максимальную высоту видео равной высоте родителя */
    object-fit: cover; /* Заполняет пространство, сохраняя пропорции видео */
    margin: 0 auto;
}
</style>

Модифицированный HTML остается таким же:

<div class="gl">
    <div class="pl">
        <video src="https://superuser.com/1111.mp4" controls></video>
    </div>
</div>

Объяснение изменений:

  • overflow: hidden; — это свойство добавляется в класс .pl, чтобы скрыть все элементы видео, которые могут превышать границы контейнера при определенных пропорциях.
  • width: 100%; — устанавливает ширину видео на 100% ширины родительского контейнера.
  • max-height: 100%; — гарантирует, что высота видео не превысит высоту родительского контейнера.
  • object-fit: cover; — изменяет поведение видео так, чтобы оно заполняло пространство, сохраняя при этом правильные пропорции, и чтобы не было искажений.

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

Оцените материал
Добавить комментарий

Капча загружается...