根据高度调整 Div 大小但保留纵横比(几乎明白了)奇怪的重新加载错误

2023-12-29

根据父 div 的宽度调整视频大小时,有很多保持宽高比的解决方案。其中大多数依赖于“padding-top”和“padding-bottom”是根据宽度而不是高度计算的事实。

我正在尝试做类似的事情,但我想根据父 div 的高度调整视频大小。

为此,我需要创建一个无论高度如何都保持纵横比的 div。 这可能是一种蹩脚的方法,但我决定使用图像来执行此操作,因为我可以将具有适当宽高比的图像高度设置为 100%,并让高度自行解决。

我已经非常接近完成这项工作了。到目前为止,我已经能够使内部 div 完全按照我想要的方式执行,除了它不会在窗口大小调整时重绘。但是,如果我调整窗口大小然后重新加载,它就会起作用。有任何想法吗?

这是演示 http://codepen.io/coulbourne/full/Gtwje(这不是一个codepen问题,我也在本地完成了)


使用图像的好想法height: 100%。这肯定会使框的宽高比与图像相同,但无论出于何种原因,都不会在窗口调整大小时回流框。

这是一个稍微简洁的 CSS 和 Javascript hack 的演示,用于修复窗口调整大小时的回流。

  • 全页演示 http://codepen.io/shshaw/full/uzlfh
  • Code http://codepen.io/shshaw/pen/uzlfh

在演示中,我使用 16px x 9px 数据 uri 图像来设置宽高比,防止不必要的 HTTP 请求。如果您需要不同比例的图像,请使用此站点将您的图像转换为数据 uri:http://dataurl.net/#dataurlmaker http://dataurl.net/#dataurlmaker

我设法用非常基本的 jQuery 解决了回流问题。在$(window).resize(),我在主体上切换一个类,使比例图像从text-align: left to text-align: justify这会诱使浏览器重排该框。


浏览器支持

适用于 Chrome、Safari、Mobile Safari、Firefox 和 IE9+。整体调整大小相当流畅,但 Safari 有点卡顿。

IE6/7不支持display: inline-block所以盒子的宽度是 100%,高度是正确的。 (不错的后备!)

IE8 正确调整了框的高度,但宽度仅与原始图像一样宽(16px)。我发现解决此问题的唯一方法是使用 HTML5Boilerplate 样式 IE 条件标记将嵌入父级设置为display: block这个演示 http://codepen.io/shshaw/pen/bfzLJ


CSS Only

If you have要拥有纯 CSS 解决方案,请在比例图像上设置动画以在 Chrome、Safari 和 Firefox 中切换少量填充。然而,这不断地迫使浏览器重新渲染页面布局,与仅在窗口调整大小时渲染页面布局相比,这是非常低效的。

.Ratio { animation: myfirst 1s infinite; }
@keyframes myfirst {
    from { padding-top: 1px; }
    to { padding-bottom: 1px; }
}

希望有帮助!

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

根据高度调整 Div 大小但保留纵横比(几乎明白了)奇怪的重新加载错误 的相关文章

  • 两种颜色边框

    客户想要两种颜色的边框以获得浮雕外观 我可以在一个元素上执行此操作吗 我希望避免堆叠两个具有单独边框的 DOM 元素 是的 使用outline财产 它充当您边界之外的第二个边界 但请注意 它可能会以一种奇怪的方式与边距 填充和阴影进行交互
  • 使用滤镜将css3灰色图像转为蓝色?

    我正在尝试将灰色图像变为更蓝色的色调 真的不知道如何为此设置滤镜或是否可能 该图像只有一种颜色 cacaca 其余部分透明 我正在尝试使用相同的图像进行一些叠加 以便它仅突出显示那些彩色部分而不是透明区域 一直在尝试其中的一些 但没有取得多
  • CSS3 box-shadow 用于类似重叠的 div

    我正在尝试用css3来实现这种效果 HTML 代码显然是这样的
  • CSS 的波浪形状

    我正在尝试使用 CSS 重新创建此图像 我不需要重复它 这就是我开始的 但它只有一条直线 wave position absolute height 70px width 600px background e0efe3 div div 我认
  • 如何使用 javascript 或 jquery 生成 CSS 路径?

    关于如何生成元素的 CSS 路径有什么建议吗 CSS 路径是识别特定元素所需的 css 选择器的路径 例如 如果我的 html 是 div div class bar ul li 1 li li 2 li li span class sel
  • 使用 JavaScript 使链接保持活动状态并在单击时显示悬停效果

    I am struggling to make this work I d like to make it where if O F is clicked the hover state stays active if another li
  • 指针事件:无,过滤,适用于 ie8 和任何地方,不适用于 ie9

    正如我在这里看到的 https stackoverflow com questions 3680429 click through a div to underlying elements 4839672 4839672 过滤器可用于模拟跨
  • 在剑道组合框中动态添加项目

    如果你们中有人使用过 kendo ui 请告诉我如何在 kendo 组合框中动态添加新项目 我尝试在谷歌和其他地方搜索 我的结论是剑道中没有这样的功能 以供参考 JSBIN http jsbin com ebutaw 2 edit sour
  • 当输入字段处于焦点时,占位符不会消失

    当用户选择字段时 表单上每个输入字段的占位符值应该消失 但事实并非如此 文档类型是 HTML5 http dailyspiro com index html http dailyspiro com index html
  • Vuetify 等高 v-tab-items

    请告知如何使 vuetify v tabs 内容显示在等高块中 我在文档中找不到该组件的选项可以帮助高度对齐 By default v tab item height depends on its own content height 布局
  • 输入文本中固定下划线

    我试图修复所有输入文本类型中的下划线 但没有成功 Example My code input width 100 background color fcfcfc border 0 padding 10px div class col lg
  • 背景突出显示代码块中的文本?

    我的目标是能够显示如下内容 我想要背景突出显示已经有的代码块内的一段代码语法高亮 我想在 Github 上托管于 Github Pages 上的 Markdown 文件上执行此操作 可以使用 kramdown markdown html c
  • 单击时更改 CSS 属性

    我试图在单击另一个元素时更改一个元素的 CSS 我进行了很多搜索 但没有任何效果是完美的 目前我正在使用下面的代码 但它不起作用 谁能告诉我我错过了什么 div hello world div img src zoom png functi
  • CSS 安全区域属性在 iPhone X 上不起作用

    就我而言 我正在 iPhone X 上运行一个 Web 应用程序 我尝试在顶部添加一个填充 以使用 Webkit 的安全区域 css 属性将我的身体推到安全区域padding top constant safe area inset top
  • css3动画硬闪烁(帧之间没有淡入淡出)

    尝试使用 css3 动画连续闪烁三个元素 我已经让它运行了 但是每一帧都有一个淡入淡出 我想将其删除 理想情况下 每个元素保持可见 1 秒 然后立即隐藏 我尝试将动画设置为帧0 and 99 for opacity 1 and 100 fo
  • 使用 CSS Flexbox 堆叠图像

    我正在学习使用CSSflexbox 和我想在左侧渲染一个大图像 并在彼此之上渲染两个小图像 我怎样才能使用CSS弹性盒 div class container img class image1 src alt null img class
  • 如何在 Bootstrap 3 中制作进度条动画?

    我正在尝试为 Bootstrap 进度条设置动画 但我不知道该怎么做 我得到了宽度的值但是console log bar width 返回宽度px但不是 如内联所示style width 90 我用代码重新创建了一个 bootply Boo
  • 在 HTML 中移动选取框/下移文本

    我正在尝试向下移动或移动 HTML 中的文本 但我似乎无法将其移动到任何地方 我添加了一个颜色命令来更改文本的颜色 但似乎只是移动了 它一直到顶部
  • CSS:将加载指示器放置在屏幕中央

    如何将加载指示器放置在屏幕中央 目前我正在使用一个小占位符 它似乎工作得很好 但是 当我向下滚动时 加载指示器保持在该预定义位置 我怎样才能让它跟随滚动 使其始终位于顶部 busy position absolute left 50 top
  • 通过 vh 和 vw 调整 css 字体大小

    所以我想根据容器的大小自动调整文本的大小 但是如果我使用类似的东西 font size 5vw 看起来不错 但是当我缩小页面时 高度开始变得太小 无论如何 我是否可以根据 vh 和 vw 调整文本大小 例如 如果我只是减小页面的宽度 那么高

随机推荐

  • 瀑布对话中的 Microsoft Bot Framework LUIS

    我有一个现有的瀑布对话 我想对其进行调整 以便它可以从更复杂的用户对机器人问题的响应中提取数据 在我的 LUIS 应用程序中 我创建了一个名为GetLocation它被训练来寻找一个名为的实体Location 一个例子是用户输入 我正在布里
  • Rails + 延迟作业 => 电子邮件视图模板未更新

    我正在为我的应用程序使用 Rails Delayed Job 每次我更新电子邮件视图时 服务器 延迟的作业都不会接收它 谁在进行缓存 铁路还是延迟工作 知道如何修复它吗 其他信息 我尝试重新启动延迟的作业 但仍然没有帮助 Thanks 旧版
  • .NET (C#) 窗口最小化事件

    嘿 我真的被我的项目困住了 我需要知道任何打开的窗口何时被最小化 恢复并在我自己的应用程序中处理事件 有任何想法吗 编辑 Musigenesis 是对的 我确实想知道其他应用程序何时最小化 恢复 我认为您需要使用 SetWindowsHoo
  • 如何将图片保存在我的应用程序的特定文件夹中(正确)?

    问题是我的应用程序保存图片两次 一个在相机文件夹中 另一个在我指定的文件夹中 但当我在另一台设备上测试该应用程序时 这并没有发生 lunch the camera and make a file to save the image in a
  • Excel表格查找两列的匹配值

    我想创建一个匹配两列的表查找公式 例如 假设我想找到的值Letter所在行的列Type列是Biennial和Result列是Warning A B C 1 Letter Type Result 2 A Annual Exceeds 3 B
  • zsh vi 模式状态行

    zsh 或 bash 有没有办法获得状态行 例如在 VI 中 它会让您知道您处于插入模式 插入 是否有等效的命令行 这已经在以下位置得到了回答超级用户 https superuser com questions 151803 how do
  • 流畅的 NHibernate API 和 .NET 2.0

    我可以将 Fluent NHibernate API 用于 NET 2 0 应用程序吗 否 FluentNhibernate 需要 NET 3 5
  • 确定文件身份的算法

    对于一个开源项目 我正在文件系统之上编写一个抽象层 该层允许我将元数据和关系附加到每个文件 我希望该层能够优雅地处理文件重命名 并在文件被重命名 移动或复制时维护元数据 为此 我需要一种计算文件身份的机制 显而易见的解决方案是计算每个文件的
  • WKWebView 的 WKSelectionGranularityCharacter 选项在 iOS 9 中损坏

    我有一个 iPad 应用程序 使用WKSelectionGranularityCharacter的选项WKWebView 它在 iOS 8 设备上运行良好 在 8 4 模拟器上运行 但在 9 1 上损坏 长按文本会显示放大镜 但松开后不会突
  • Visual Studio 2017 构建工具仍然可供下载吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找 Visual Studio 2017 构建工具 它们在某处还可用吗 我可以找到2015 ht
  • 在 ASP.NET Core 中将 html 导出为 pdf

    我想将一段 html 导出到 pdf 文件 但我没有任何兼容的 nuget 包 当我尝试安装任何人时 X 与 netcoreapp1 0 NETCoreApp 版本 v1 0 不兼容 有谁知道使用 ASP NET Core 导出为 pdf
  • 将 PHP 变量传递给 Google Maps API

    当用户注册我的应用程序 大学项目 时 系统会要求他们提供地址 我将此地址转换为纬度和经度 然后将其存储在我的数据库中 我像这样访问纬度和经度
  • CoAP 观察者过多

    我想 观察 CoAP 服务器中的资源 但我注意到 在我注册观察服务器中的一些资源后 我尝试 观察 的其他资源会抛出一条消息 提示 观察者太多 我正在使用 Copper Firefox 连接到服务器 CoAP 服务器可以观察到的资源是否有限制
  • Rails:在连接上使用 .references,即使这不是必需的

    我知道当你使用includes并且您指定一个where连接表上的子句 您应该使用 references example will error out or throw deprecation warning in logs customer
  • 为什么局部变量的常量性会抑制返回值的移动语义?

    struct STest public boost noncopyable STest STest test m n std move test m n explicit STest int n m n n int m n STest Fu
  • 如何在单个查询中获取最大值和最小值?

    我正在使用 MySQL 并且正在寻找一种从两列 例如 posx and posy 仅使用一个查询 Simple SELECT MIN posx MIN posy MAX posx MAX posy FROM table
  • 构建 Clang 时未知的软件包 libcxx 和 libcxxabi?

    我正在尝试使用 libc 从源代码构建 Clang 我试图将 libc 放入树内 同时使用其他组件在树外构建它 我使用的食谱如下 如果我简单地放置libcxx and libcxxabiin tree 然后配置does not拿起它们 它们
  • Homebrew:无法链接Python

    我在 Homebrew 中链接 python 时遇到问题 这是输出 brew link python 链接 usr local Cellar python 2 7 13 错误 权限被拒绝 usr local Frameworks When
  • 使用三个 js 更改合并网格上的材质颜色

    是否可以与合并多个网格时使用的缓冲区进行交互以更改所选单个网格上的颜色 使用网格集合很容易做到这一点 但是具有多种不同材质的合并网格又如何呢 hgates 你最后的评论对我非常有帮助 我几天来一直在寻找同样的东西 好的 我在每个面上设置了一
  • 根据高度调整 Div 大小但保留纵横比(几乎明白了)奇怪的重新加载错误

    根据父 div 的宽度调整视频大小时 有很多保持宽高比的解决方案 其中大多数依赖于 padding top 和 padding bottom 是根据宽度而不是高度计算的事实 我正在尝试做类似的事情 但我想根据父 div 的高度调整视频大小