Я хотел бы иметь на странице HTML:
- div заголовка - некоторая высота, основанная на его содержимом
- div содержимого (ниже заголовка) - взять оставшаяся часть высоты ниже заголовка
- таблица (в div содержимого) - взять 100% для обоих измерений его родительского элемента (div содержимого)
- элемент видео (в таблице) - взять и резерв 100% для обоих измерений его родителя (td)
Вот что у меня есть:
body { margin: 0; }
#main {
position: absolute;
left:0px;
top:0px;
display: flex;
flex-direction: column;
height: 100vh;
width: 100vw;
background:red;
}
#header {
background:yellow;
}
#content {
background:gray;
flex:1;
}
table {
width: 100%;
height: 100%;
background: blue;
color: white;
}
video {
width: 100%;
height: 100%;
}
<html>
<body>
<div id="main">
<div id="header">
Header
</div>
<div id="content">
<table>
<tr>
<td>
<video controls>
<source src="https://test-videos.co.uk/vids/bigbuckbunny/mp4/h264/1080/Big_Buck_Bunny_1080_10s_1MB.mp4" type="video/mp4">
</video>
</td>
</tr>
</table>
</div>
</div>
</body>
</html>
Теперь проблема в теге видео (если вы запустите этот фрагмент, будут полосы прокрутки - я их не хочу).
Если я уберу видео тег, все будет работать как надо. Однако, если есть тег видео, он разрушает опцию 'flex': он увеличивает тд, следовательно, таблица также становится больше, а затем и содержимое - так что полосы прокрутки включены, и страница не помещается в screen.
Возможно, размер видео изменяется при загрузке мультимедиа, и в это время все операции css завершаются.
Но как сделать видео точным? тот же размер, что и ширина 100% и высота его родителя (td) даже во время воспроизведения?