html - 如何在 HTML/CSS 的平铺列表中以 16:9 的比例获取所有孩子
问题描述
我正在尝试获取一组平铺视频,以显示 4:3 视频在哪里有黑色 16:9 背景,左右两侧有黑条,所以它们都在一条线上,视频高度没有差异,好像所有视频均为 16:9 格式。
目前的问题是,对于具有不同纵横比的人,屏幕看起来很乱,我想让它统一。大多数人似乎有 16:9,所以我想把它作为标准。
我有一个看起来像这样的例子,这是下面例子的 js fiddle,我使用了图像,这些通常会被换成视频,但我认为同样的原则也适用。
https://jsfiddle.net/g0u6ak9p/
相反,我希望它看起来像这样......
我已经看到了添加 a 的示例,padding-top: 56.25%;
但我无法使其正常工作。
任何人都可以建议吗?
解决方案
我已经想通了。
我需要为每个不同数量的用户添加 CSS,但这样做我可以根据 100vw 和 100vh 除以有多少行/列来计算最大高度和宽度,以获得我需要的 16:9 比率。
https://jsfiddle.net/tg2wknfp/5/
.video-example{
width: 100%;
height; 100%;
background: #111;
}
.tiles-list-5 > .tile-0 .video-example,
.tiles-list-5 > .tile-1 .video-example,
.tiles-list-5 > .tile-2 .video-example{
max-height: calc(100vw / 3 * 9 / 16);
max-width: calc(100vh / 2 * 16 / 9);
}
.tiles-list-5 > .tile-3 .video-example,
.tiles-list-5 > .tile-4 .video-example {
max-height: calc(100vw / 2 * 9 / 16);
max-width: calc(100vh / 2 * 16 / 9);
}
推荐阅读
- laravel - 多对多多态关系中的自定义透视列名称?
- angular - 使用 Angular Universal 在 Angular 中执行服务器端渲染时,页面重定向后无法看到我的 html 源代码
- nao-robot - 听到触发语句但不触发行为
- c# - 如何覆盖newtonsoft json中的“Required.Always”
- python-3.x - 通过 Google Drive File Stream 上传大量文件
- ruby-on-rails - 如何对角色的权限进行分组
- javascript - 为什么 state.map(foo => <>{foo}) 不显示任何内容?
- reactjs - 静态站点的环境变量?
- machine-learning - AttributeError : 'tuple' 没有属性 'to'
- flutter - Flutter:在构建期间调用 setState() 或 markNeedsBuild()