Мне хорошо известно, что это более старый вопрос, но я изо всех сил пытался создать макет с помощью CSS, в котором видео автоматически масштабируется, чтобы соответствовать некоторому блоку, обычно внутри родительского элемента.
Простое использование width
и height
со статическим позиционированием работает только в определенной конфигурации родительско-дочерних топологий, а также во многом зависит от стиля топологии. Даже если у вас есть какой-то элемент для правильного расчета его границ, после того, как вы поместите в него элемент воспроизводимого видео, он расширит поле разрешенных родителями, даже если это наименее разумное поведение, которое вы ожидаете.
Добавьте несколько fieldset
элементов, и вы окажетесь в кроличьей норе CSS и особенностей браузера.
Что я обнаружил, так это то, что проще всего было просто извлечь элемент видео из контекста позиционирования, используя position: absolute
. Это не означает, что он не будет визуально хорошо себя вести - использование width: 100%
и height: 100%
эффективно заставляет его правильно ограничивать себя, как и должно (но не будет). Затем вам нужно будет добавить position: relative
к соответствующему элементу-предку элемента video, иначе видео будет абсолютно позиционировано относительно корня документа, что, скорее всего, не то, что вам нужно.
Пропуск left
и right
работает, потому что абсолютное позиционирование не сбрасывает позицию, просто переключает метод расчета. В качестве альтернативы вы можете установить оба свойства на ноль, тогда ваше видео будет выровнено по верхнему левому углу родительского смещения. max-width
и max-height
не нужны - я просто видел, как они добавляются во многих случаях, когда люди борются с ограничением своих элементов видео - не беспокойтесь.
Вы можете указать цвет фона для элемента видео или его родительского смещения. Таким образом, вы получите эффект почтового ящика - скажем, черные полосы по бокам видео.