让 HTML5 视频适合父元素大小

2024-04-14

我在

中有一个

我希望视频元素也能自动调整大小,以便它始终包含在其背景 div 中;如果我将视频元素的 CSS 高度和宽度设置为 100%,这种方法就有效,因此它的大小始终与其容器相同。但是,如果包含 div 的尺寸低于视频图像的固有 videoWidth 或 videoHeight,则它开始表现得好像 CSS 高度/宽度属性引用视频图像固有尺寸的百分比,而不是容器 div!例如,如果 CSS 高度为 100%,则它会正常缩放,只不过它具有视频固有高度的最小尺寸;如果 CSS 高度为 50%,则它会正常缩放,但最小尺寸为视频固有高度的 50%。

我可以通过使用 JavaScript 定期将视频元素的高度(以像素为单位)重置为容器的计算高度来解决此问题,但这确实很慢且不稳定。有什么方法可以在 CSS 中修复此问题,以便视频元素的大小正确吗?


我很清楚这是一个较老的问题,但我一直在努力使用 CSS 完成布局,其中视频会自动调整大小以适合某个框(通常在父元素内)。

只是使用width and height静态定位仅适用于父子拓扑的某些配置,并且很大程度上取决于拓扑的样式。即使你得到一些元素来正确计算其边界,一旦你将正在播放的视频元素放入其中,它就会expand父母允许使用盒子,尽管这是你所期望的最不明智的行为。

扔一些fieldset元素,你就陷入了 CSS 和浏览器特性的兔子洞。

我发现最简单的方法是将视频元素从其定位上下文中取出,使用position: absolute。这并不意味着它在视觉上表现不佳——使用width: 100% and height: 100%有效地使其正确地约束自身,否则它应该(但不会)。然后你需要添加position: relative到视频元素的适当祖先元素,否则视频将相对于文档根绝对定位,这很可能不是您想要的。

省略left and right之所以有效,是因为绝对定位不会重置位置,只是切换计算方法。您也可以将这两个属性设置为零,然后将视频与偏移父级左上角对齐。max-width and max-height是不必要的——我只是看到在很多情况下人们都在努力限制他们的视频元素——不用费心。

您可以为视频元素或其偏移父元素指定背景颜色。这样,您将获得信箱效果,例如视频两侧的黑条。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

让 HTML5 视频适合父元素大小 的相关文章

  • CSS 居中变换

    为什么使用变换居中可以完美地平移并左 50 居中 相对于父级的位置 但右 50 却不能 工作示例 span class icon position absolute top 50 left 50 transform translate 50
  • Angular Material 中的 img 标签内的 md-tooltip

    我想在悬停在 3 个不同图像上时显示 3 个不同的工具提示
  • 锚标记内的 CakePHP Span 标记

    我试图让 CakePHP 输出一个如下所示的链接 a href foo bar class some other classes span class icon new span FooBar a 所以我在我看来使用以下代码
  • jQuery:评估 ajax 响应中的脚本

    来自我的 web 应用程序的 XML 响应既有要添加到页面的 HTML 也有要运行的脚本 我正在尝试从我的网络应用程序发回 XML 例如
  • 散景服务器获取鼠标位置

    我正在开发一个带有散景 0 12 2 的交互式应用程序 它根据特定的交互更新绘图 现在 我使用滑块来更改图中字形的位置 但实际上我想访问鼠标在特定图中的位置 数据集是一个多维矩阵 张量 密集数据 每个图在特定位置显示一个维度 如果我更改一个
  • PHP DOMDocument 中 XML 内 HTML 表的 Xpath 查询

    我有一个具有以下树结构的 XML 文件
  • CSS - 将文本保留在图像下方

    我正在尝试创建一个简单的图片库 有人告诉我使用 float left 但是当我这样做时 页脚中的所有文本都会射到第一张图像 我已经搜索了大约一个小时试图找到解决方案 但我找不到任何东西 我尝试过使用边距 边框 不同的对齐方式和各种不同的小东
  • 对同一域发出 get 请求,出现 CORS 错误

    在浏览器扩展中 这是我的 ajax 调用 var xhr new XMLHttpRequest xhr open GET window location href true xhr responseType arraybuffer xhr
  • 带切边、边框和透明背景的 Div

    我一直在试图弄清楚如何在 CSS 中制作一个视觉上看起来像这样的自定义形状 拥有以下财产background rgba 44 44 48 0 9 and border 6px solid rgba 29 30 35 0 9 我的问题是我找不
  • 是否可以使用 CSS 设置禁用的 INPUT 元素的样式?

    我需要风格disabled
  • 对大数据块进行反应非阻塞渲染

    最近我开始学习反应并想知道是否有某种模式可以用于大数据的非阻塞 UI 线程渲染 比方说 我们采取这个例子 https www mendix com tech blog making react reactive pursuit high p
  • 使用“onclick”和 JavaScript 获取按钮上的 X/Y 坐标

    我是一名 JavaScript 初学者 正在寻找一种方法来获取单击按钮时的 x 和 y 坐标 这适用于 Opera IE9 和 Chrome 但我无法让它在 Firefox 中工作 到目前为止 这是我的代码 JavaScript 中的函数
  • 通过 javascript 将 onsubmit 添加到表单

    您将如何仅通过 Javascript 将 OnSubmit 属性插入到表单中 我对 javascript 还很陌生 所以如果您能够提供详细的示例代码 那将是最有帮助的 情况是这样的 我通过 Chargify 支付平台 使用托管注册页面来处理
  • Firefox 扩展中的 localStorage

    我正在尝试从 Firefox 扩展访问页面的 localStorage 我的理解是content给出了参考window当前页面的 当我尝试访问页面的 localStorage 时content localStorage 我想我正在得到它的参
  • nested_form/cocoon:可以将表行用于嵌套字段吗?

    我通常不使用表格作为表单 但是当有嵌套表单时 使用nested form或cocoon gem时 可以将每组表单元素放在表格行中吗 对我来说 这似乎非常直观 表中的每一行都代表一个对象 但是 nested form 和 cocoon gem
  • 将 ASP.NET TextBox 呈现为 HTML5 输入类型“Number”

    当 ASP NET TextBox 呈现时 它会生成
  • regex php - 查找 div 中具有特定 ID 的内容

    我确信这是一个简单的问题 尽管我在谷歌上进行了如此多的搜索和搜索 但我似乎无法弄清楚这有什么问题 我在此页面上的其他区域使用类似的表达式来准确返回我想要的内容 但是 我无法让这个特定的位返回我想要的东西 所以也许有人可以帮助我 我有一个带有
  • .js.erb VS .js

    将 Rails 应用程序的 javascript 放入 js erb 文件而不只是将其放入 application js 文件有什么好处 我有一个企业创建按钮 因此我应该将代码放入 create js erb 文件中 还是使用以下方法将其放
  • 如何在 JavaScript 中将样式属性重置为其 CSS 默认值?

    在 php 生成的页面上有几个这样的元素 td class defaultTDStyle style color userDefinedCustomColor td 因此有一个默认样式 我应用了几个额外的样式来覆盖 CSS 中定义的样式 有
  • vuejs2复制剪贴板问题

    我正在尝试使用https alligator io vuejs vue clipboard copy https alligator io vuejs vue clipboard copy 对于 Vue js 中的复制剪贴板功能 它对于字符

随机推荐