底部填充最大高度

时间:2016-02-19 16:21:12

标签: html css

这是HTML:

<div class="container">
   <div class="wrapper">
      <iframe src="...."></iframe>
   </div>
</div>

包装器div有CSS:      位置:相对;      宽度:100%;      身高:100%;      身高:0;      填充底部:56.25%;      溢出:隐藏;

iframe有CSS:

position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
border: 0;

容器有CSS:

position: relative;
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
margin: 0 auto;
top: 50%;
transform: translateY(-50%);
max-width: 1280px;
max-height: 720px;

我正在尝试保护iframe的宽高比16:9,因为窗口调整大小并且还保持 100% - 67px calc(100% - 67px)的最大高度。我怎么能同时做这两个呢?

4 个答案:

答案 0 :(得分:2)

我有同样的问题。结束为包装器制作另一个包装器以获得两者的效果。

内包装确保保留纵横比,因为padding-bottoms'的值是从宽度缩放的。 iframe填充它的容器,外包装器提供最大宽度,以便在865px之后停止扩展。

.video-wrapper-wrapper {
    max-width: 865px;
    margin: auto;

    .video-wrapper {
        position: relative;
        width: 100%;
        height: 0;
        padding-bottom: 82%;

        iframe {
            position: absolute;
            width: 100%;
            height: 100%;
            left: 0;
            top: 0;
        }
    }
}

答案 1 :(得分:0)

不使用填充来设置高度,而是将高度设置为视口宽度:

height: 56.25vw; /* 16:9 */

然后,您可以将max-height设置为您喜欢的任何内容。

答案 2 :(得分:0)

解决方案是使用max-height: ___; overflow: hidden将整个内容包装在一个元素中。

答案 3 :(得分:-2)

假设您不想支持旧版浏览器,可以使用:

height: calc(100% - 67px);

并将其应用于您的容器。