【发布时间】:2016-04-22 11:05:22
【问题描述】:
我正在尝试使用 flexbox 来布局我的网站。该网站在屏幕顶部有一个视频,在其下方有一个可滚动的 div。每个弹性项目应使用屏幕高度的 50%。
调整屏幕大小时,视频应保持其宽高比。宽度不超过屏幕宽度,高度不超过屏幕高度的50%。
现在,当屏幕变窄时,视频会正确缩放以适应宽度:
当屏幕变宽时,视频的高度会超出父 div 的高度,并且控件会出现在可滚动 div 的上方。
如何确保视频在保持宽高比的同时永远不会超过弹性项目的高度或宽度?我的一个要求是我必须将视频元素嵌套在弹性项目中(我不能将视频元素用作弹性项目)。此外,理想情况下,视频应垂直和水平居中。
html,
body {
height: 100%;
}
video {
width: 100%;
height: auto;
}
.flex-container {
height: 100%;
display: flex;
flex-direction: column;
}
.flex-item {
padding: 1em;
width: 100%;
flex-basis: 50%;
}
.video-content {
background-color: #ccffcc;
}
.scrollable-content {
overflow-y: auto;
background-color: #ffcccc;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
<div class="flex-container">
<div class="flex-item video-content">
<video src="http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4" controls></video>
</div>
<div class="flex-item scrollable-content">
Scroll content
<br>Scroll content
<br>Scroll content
<br>Scroll content
<br>Scroll content
<br>Scroll content
<br>Scroll content
<br>Scroll content
<br>Scroll content
<br>Scroll content
<br>Scroll content
<br>Scroll content
<br>Scroll content
<br>Scroll content
<br>Scroll content
<br>Scroll content
<br>Scroll content
<br>Scroll content
<br>Scroll content
<br>Scroll content
<br>Scroll content
<br>Scroll content
<br>Scroll content
<br>Scroll content
</div>
</div>
【问题讨论】:
-
这里没问题。你能告诉我是哪个屏幕尺寸导致了这个问题吗?
-
一开始的 flex-basis 和 width - 相同。
-
@CarolMcKay 实际上,
flexbasis和width不相同..尽管它们相似。