【发布时间】:2019-12-04 04:53:08
【问题描述】:
编辑: 带线框的 Codepen:https://codepen.io/djdmorrison/pen/RwNNpLb 如果我减小 .container 的宽度,视频会按预期变小,但会保持纵横比。但是,如果我减小 .container 高度,我希望视频变小(减小宽度)以免溢出。
我已经用 javascript 解决了这个问题,但我更喜欢 CSS 解决方案。
这需要是一个单页应用程序 - 不能滚动。页眉、聊天侧边栏、页脚都是固定大小。视频描述是由其内容决定的固定高度。然后视频会占用剩余空间,并保持 16:9 的纵横比。如果视频高度足够小,那么它会“粘”在视频的底部,并在其下方留下任何空白空间。如果视频高度较大,则视频说明应到达底部,视频应变小以填充剩余空间。
我使用了padding-top/bottom: 56.25% 技巧来保持视频纵横比。当窗口足够薄且足够高时,这很有效。但是,当窗口宽而短时,视频会占据整个剩余宽度,导致高度增加并将视频描述推离窗口。
这里的解决方案是设置视频宽度,使其处于视频描述触及底部而不会掉页的大小。
用于此的伪代码(其中 videoContainer 是视频和描述的空间)
video.width = (videoContainer.height - videoDescription.height) * (16/9) + 'px'
这适用于 javascript,但我更喜欢 CSS 解决方案,因此我不必依赖事件侦听器来调整大小。
谢谢!
【问题讨论】:
-
这能回答你的问题吗? Maintain the aspect ratio of a div with CSS
-
该答案解释了如何保持我在问题中已经提到的纵横比,而不是如何根据窗口高度调整视频宽度。
-
我链接的问题有23个答案...