【发布时间】:2020-03-02 09:51:36
【问题描述】:
我想要一个 HTML 页面:
- 标题 div - 一些高度,基于其内容
- 内容 div(标题下方)- 取标题下方高度的其余部分
- 表格(在内容 div 中) - 对其父级(内容 div)的两个维度都取 100%
- 视频项目(在表格中) - 为其父项 (td) 的两个维度获取并保留 100%
这是我所拥有的:
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>
现在,问题出在 video 标签上(如果你运行这个 sn-p 会有滚动条 - 我不想要它们)。
如果我删除视频标签,一切都会按预期进行。 但是,如果有 video 标签,它会破坏 'flex' 选项:它会放大 td,因此表格也会变大,然后内容也会变大 - 因此启用滚动条并且页面将不适合屏幕。
可能在加载媒体时调整视频大小,此时所有 css 操作都已完成。
但是,即使在播放过程中,有什么方法可以使视频的大小与其父级(td)的 100% 宽度和高度完全相同?
【问题讨论】:
-
为什么需要这张桌子?
-
有时表格很简单(1row, 1col),但有时它更大(3row, 3col)并且它是动态生成的 - 可能不是必须的,但我不想在一个问题中混合.
标签: html css html5-video