为什么容器大小取决于绝对定位的子项?

2024-01-28

我正在尝试构建一个带有两个视频盒的类似 Skype 的界面:

http://jsfiddle.net/q9ER2/20/ http://jsfiddle.net/q9ER2/20/

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <style type="text/css">
            html, body
            {
                background-color: #000000;
                height: 100%;
                font-family: Verdana, Arial, Helvetica, sans-serif;
            }

            body
            {
                margin: 0;
                padding: 0;
            }

            #videoContainer
            {
                position: relative;
                max-width: 800px;
            }

            #bigRemote
            {
                /* Shrink if necessary */
                max-width: 100%;
                max-height: 100%;
            }
            #smallLocal
            {
                position: absolute;
                height: 30%;
                width: 30%;
                bottom: 0;
                right: 0;
            }
        </style>
  </head>
  <body>
        <div id="videoContainer">
            <video id="bigRemote" controls preload="none" poster="http://media.w3.org/2010/05/sintel/poster.png">
                <source id="mp4" src="http://media.w3.org/2010/05/sintel/trailer.mp4" type="video/mp4" />
                <source id="webm" src="http://media.w3.org/2010/05/sintel/trailer.webm" type="video/webm" />
                <source id="ogv" src="http://media.w3.org/2010/05/sintel/trailer.ogv" type="video/ogg" />
                <p>Your user agent does not support the HTML5 Video element.</p>
            </video>
            <video id="smallLocal" controls preload="none" poster="http://media.w3.org/2010/05/sintel/poster.png">
                <source id="mp4" src="http://media.w3.org/2010/05/sintel/trailer.mp4" type="video/mp4" />
                <source id="webm" src="http://media.w3.org/2010/05/sintel/trailer.webm" type="video/webm" />
                <source id="ogv" src="http://media.w3.org/2010/05/sintel/trailer.ogv" type="video/ogg" />
                <p>Your user agent does not support the HTML5 Video element.</p>
            </video>
        </div>
    </body>
</html>

大箱子(bigRemote) 代表远程视频流。小盒子(smallLocal), 代表本地视频流。

我遇到了一个问题:当你垂直缩小结果窗口时,smallLocal框将远离右下角bigRemote。原因是smallLocal绑定到右下角videoContainer后者并没有缩小bigRemote does.

我的印象是position: absolute在确定容器的布局/大小时,子项将被忽略。我该如何制作videoContainer适合周围bigRemote当后者缩小时?(我相信这样做会间接导致smallLocal粘在右下角bigRemote.)

  • 我希望视频随其容器一起增大/缩小,这样您就无法删除最大宽度/高度或设置显式尺寸videoContainer.
  • 我希望视频保持其宽高比,因此使其与videoContainer也不会做。

jsFiddledemo http://jsfiddle.net/J2qYe/show (edit) http://jsfiddle.net/J2qYe

假设要求 are:

  • 保持原始视频比例
  • 尽可能保持视频原始大小
  • 调整视频大小以适合窗口
  • 右下角小视频
  • 小视频的宽度始终是大视频的 30%
  • 无滚动条

The solution我发现(至少)适用于 Chrome 26.0、Firefox 19、IE9、IE10:

HTML:

<div class="wrap"><video class="big" controls preload="none" poster="http://media.w3.org/2010/05/sintel/poster.png">
    <source src="http://media.w3.org/2010/05/sintel/trailer.mp4" type="video/mp4" />
    <source src="http://media.w3.org/2010/05/sintel/trailer.webm" type="video/webm" />
    <source src="http://media.w3.org/2010/05/sintel/trailer.ogv" type="video/ogg" />
    <p>Your user agent does not support the HTML5 Video element.</p>
</video><video class="small" controls preload="none" poster="http://media.w3.org/2010/05/sintel/poster.png">
    <source src="http://media.w3.org/2010/05/sintel/trailer.mp4" type="video/mp4" />
    <source src="http://media.w3.org/2010/05/sintel/trailer.webm" type="video/webm" />
    <source src="http://media.w3.org/2010/05/sintel/trailer.ogv" type="video/ogg" />
</video></div>

CSS:

html, body{
    height: 100%;
    line-height: 0;
    font-size: 0;
}

.wrap{
    display: inline;
    position: relative;
}

.big{
    max-width: 100%;
    max-height: 100%;
}

.small{
    max-width: 30%;
    position: absolute;
    right: 0;
    bottom: 0;
}

出奇display: inline是唯一可以在包装器上按需要工作的显示类型。inline-block在 Firefox 中不起作用,在 Chrome 中遇到一些问题。

font-size and line-height设置为避免一些inline间距问题。

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

为什么容器大小取决于绝对定位的子项? 的相关文章

  • Javascript 播放声音性能重吗?

    我正在用 Javascript 制作一个简单的游戏 当一个物体与墙壁碰撞时 它会发出 砰 的声音 声音的响度取决于物体的速度 速度越高 gt 声音越大 播放功能 playSound function id vol ID of the sou
  • 使用画布仅删除文本而不删除图像

    我正在尝试删除画布元素中的文本 而不丢失Background Image of the Canvas Element 我想我需要保存Imagesrc并把它还给Canvas Element之后clearRect 但我不知道该怎么做 我希望有人
  • 将父容器扩展至 100% 高度以容纳浮动内容

    我正在为一个客户项目而苦苦挣扎 我的全部divs 没有绝对定位 height 100 for html body 和容器divs 但静态内容未达到其内容 在 910 像素处 我可以将溢出属性更改为auto 并且背景会继续向下到内容的末尾 但
  • 增加数字输入、CSS、HTML 上的向下和向上箭头的大小

    有没有办法利用CSS来增大数字输入框右侧的上下箭头的大小 只是向上和向下箭头 而不是整个输入框 或者至少是按比例的 看这个例子 size 36 font size 36px size 12 font size 12px
  • 使用 CSS 自定义字体?

    我见过一些在其网站上使用自定义字体的新网站 除了常规的 Arial Tahoma 等 他们支持大量的浏览器 如何做到这一点 同时 如果可能的话 还会阻止人们免费下载该字体 一般来说 您可以使用自定义字体 font face在你的 CSS 中
  • div 边框上的内边距

    我想在 css 边框上添加填充 将其拉入 div 内 远离边缘 使用 css 可以吗 css3 很好 webkit 这是设计 我通过将一个 div 放在一个 div 中 然后给内部 div 一个边框来做到这一点 我想让标记尽可能精简 所以如
  • 如何倾斜 div 并保持背景图像不倾斜

    我已经花了几个小时了 所以希望有人能提供帮助 我有一个网站 其中大部分 div 都是倾斜的 大多数 div 都包含背景图像 现在我已经让 div 倾斜了 内容完美地位于其中 唯一的问题是背景图像 它与父级一起倾斜 我用谷歌搜索了很多 但找不
  • 调整文本区域大小

    我需要使用文本区域来显示一些文本 问题是 如果我放置 4 5 行文本 就会出现滚动条 如何使用 CSS HTML 使文本区域与其内容一样大 没有滚动条 文本区域不需要动态更改其大小 我仅使用它来显示文本 我也可以使用禁用的文本区域 我希望文
  • 来自 JSON 的 Angular 8 动态表单

    我正在尝试从 JSON 模式递归生成动态表单 但我正在努力解决找不到表单控件的问题 这是代码示例 我收到这个错误 错误错误 找不到名称为 createdAt 的控件 我尝试了不同的方法 但仍然存在问题 我知道我错过了一些东西 所以请帮忙 任
  • 如何并排放置两个

    我有两个 div 我想要并排放置的元素 如下所示 navigation content 我想要导航 div 根据需要尽可能大 但不能更大 收缩以适应行为 内容 div 然后应该填充剩余的空间 如何在不指定百分比 例如 20 80 的情况下使
  • W3C 验证器:“握手警报:unrecognized_name”

    我正在尝试验证我的网站W3C Nu Html 检查器 https validator w3 org nu doc https 3A 2F 2Fwww healthdrop in 2F但我遇到了以下错误 不知道为什么 IO 错误 握手警报 u
  • HTML2canvas 和 Canvas2image,下载的屏幕截图不显示我的 HTML 图像

    我一直在开发一个 HTML 页面 我想将其转换为图像 我一直在使用 html2canvas 和 canvas2image 脚本并采用此代码http jsfiddle net 8ypxW 3 http jsfiddle net 8ypxW 3
  • 如何通过php获取网页的Open Graph协议?

    PHP 有一个简单的命令来获取网页的元标记 get meta tags 但这仅适用于具有名称属性的元标记 然而 开放图谱协议如今变得越来越流行 从网页获取 opg 值的最简单方法是什么 例如 我看到的基本方法是通过 cURL 获取页面并使用
  • Jquery 中的动态滚动位置

    请帮助我解决以下情况 我有 3 个页面 当滚动到达第二页时 用户滚动页面 它必须找到特定的 ID 然后触发一个函数 一旦第三页开始 另一个函数就会触发 根据要求我不应该使用任何插件
  • JavaScript 中数组的 HTML 数据列表值

    我有一个简单的程序 它必须从服务器上的文本文件中获取值 然后将数据列表填充为输入文本字段中的选择 为此 我想要采取的第一步是我想知道如何动态地将 JavaScript 数组用作数据列表选项 我的代码是
  • 如何延迟加载嵌入在 iframe 上的 YouTube 视频?

    如何将延迟加载应用于iframe嵌入视频 我尝试添加loading eager loading auto and loading lazyload 您可以使用srcdoc你里面的属性iframe标签来加载图像 请参阅以下示例作为参考
  • 我可以停止 :hover 应用于元素吗?

    假设我有一些 CSS button hover font weight bold 我怎样才能防止 hover随意应用样式 我的目标用例是当元素被禁用时 例如 使用这个 HTML
  • JSTL 在循环中每 5 个字段集创建一个新行

    您好 我目前正在迭代并在表中显示字段集列表 为了让布局变得更得体一些 我想在每次循环到达第五个字段集时创建一个新行 谢谢 JSP div class det table class det tr td td tr table div
  • 为范围旋钮 ionic-range 添加边框颜色

    我正在使用离子范围添加范围滑块 并想向范围旋钮添加边框 由于它的 ionic4 和范围旋钮是 Shadow dom 的一部分 我无法使用范围旋钮的 border 属性直接更改边框 我已附上我想要实现的图像 范围旋钮周围有白色边框 现有属性只
  • 闪亮井板宽度

    library shiny library shinydashboard ui lt dashboardPage dashboardHeader dashboardSidebar dashboardBody wellPanel tags d

随机推荐

  • 如何区分应用程序中的测试属性和生产属性?

    我们正在开发一个大型 J2ee 电子销售解决方案 它有很多集成 CMS ERP 邮件服务器等 所有这些系统都分为测试和生产环境 我们需要使用测试配置将应用程序部署到测试服务器 而当部署到生产服务器时 它应该使用生产配置 我们如何让我们的应用
  • Swift 的 UITableView 示例

    我使用 Swift 和 iOS 已有好几个月了 我熟悉许多做事的方法 但我还不够好 我不能不看就直接写下来 我过去很欣赏 Stack Overflow 提供的快速答案 让我回到对我已经生疏的主题的正轨 例如 AsyncTask Androi
  • 如何开始将 django-cms 集成到现有项目中

    我的目的是将现有项目中的静态页面 关于我们 联系我们等 转换为管理可编辑页面 我已按照以下说明进行操作tutorial http django cms readthedocs org en 3 0 12 how to integrate h
  • W1024 组合有符号和无符号类型 - 扩大两个操作数

    我怎样才能防止这个警告 DCC 警告 uFvSystem pas 293 W1024 组合有符号和无符号类型 扩大了两个操作数 function LinkerTimestamp TDateTime overload begin Result
  • 为什么我不应该#include

    我用我的代码发布了一个问题 其唯一的 include指令如下 include
  • Chrome Devtools 以搜索方式打开,而不是开发工具本身

    尝试运行 Nativescript 调试会话 每次我进入 chrome devtools devtools bundled inspector html experiments true ws localhost 41000 它会打开谷歌搜
  • 全卷积网络的每像素 softmax

    我正在尝试实现类似全卷积网络的东西 其中最后一个卷积层使用大小为 1x1 的滤波器并输出 分数 张量 分数张量的形状为 Batch height width num classes 我的问题是 张量流中的什么函数可以对每个像素应用 soft
  • UITextView 绘制不可见/空白字符

    我将如何做一个UITextView为制表符 空格和换行符结尾绘制不可见字符 我认为必须在drawRect CGRect 方法或通过 Text Kit 中的布局管理器 有什么简单和 或直观的解决方案吗 我只需要知道如何获得CGRect每个空白
  • 如何在 Windows 8 Metro 应用程序中的设备中存储缩略图图像#

    我正在使用此代码创建缩略图并在框架中显示 平台 gt 使用 C 的 Windows 8 Metro 应用程序 http code msdn microsoft com windowsapps File and folder thumbnai
  • 使用 TextArea 通过 JavaFX 编辑大型文本文件

    有没有一种方法可以在 TextArea 中相当快地编辑相对较大的文本文件 例如 10 25 MB 或者也许可以禁用某些功能以使其更快 有替代组件吗 我了解 RichTextFX 但我想它会更慢 因为它做得更多 而且我只需要一个基本的编辑器
  • 单击按钮时关闭 jQuery 厚盒

    这是我的 jQuery script gt Html
  • 不同饼图中每个标签保持相同的颜色

    我无法为从一个饼图到另一个饼图的每个标签保持相同的颜色 如下图所示 Matplotlib 反转了第二个饼图中的颜色 我希望 Frogs 标签保持红色 Hogs 标签保持绿色 我也尝试添加label参数 但它只是给出了错误的计数 我还尝试反转
  • PHP $_FILES 文件循环上传

    我想从 php 函数将文件插入到 mysql 中 需要上传的文件已经存在于服务器上 所以我不想使用上传表单 我想循环遍历目录并将文件信息放入 FILES 请让我知道如何获得 file into FILES然后调用上传 dir handle
  • 在多个线程上并行调用 ICsharpCode.SharpZipLib 是否安全

    我们当前使用 ICsharpCode SharpZipLib 库的 GZipOutputStream 类进行压缩 我们通过一个线程来完成它 我想将输入数据流分割成块并并行压缩它们 我担心这个库内部可能有一些静态数据 这些静态数据会被多个线程
  • 使用 Python 的 Headless Chrome 在尝试下载文件时暂停

    我在 Mac 上使用 Python Jupyter Selenium webdriver 和 headless Chrome 带有 Canary 我写了一个脚本来抓取一个非常旧的网站 为了从该网站下载文件 我需要单击几个按钮 最终引导我到一
  • 使用 Python 的具有多个帐户的 YouTube 数据 API

    我正在开发一个应用程序 旨在帮助我的一个朋友更好地组织他的 YouTube 频道 他在不同的 Google 帐户上拥有多个频道 我正在用 Python 开发这个程序 目前我对 YouTube Data API 没有太多经验 我计划使用它 因
  • 如何确定哪些 Eclipse 插件对菜单和工具栏有贡献并停止它们

    我正在创建一个 RCP 应用程序 它使用许多第三方插件 其中一些插件提供了我不希望显示的菜单 菜单项和工具栏按钮 如何确定哪些插件正在提供这些菜单 菜单项和工具栏按钮 以及如何禁用它们这样做 检查菜单 工具栏贡献等的详细信息 通过包含插件来
  • decltype(auto) 与 auto&& 执行函数返回类型的通用处理

    使用时auto 处理返回左值的函数 int func int v 42 return v auto v func 治疗会有什么后果v作为参考而不是左值 这些后果是否证明使用decltype auto 代替auto 对函数的返回类型执行通用处
  • 手动向 Spring Security 提供引用 URL

    我们有一些购物车页面适用于访客和用户路径 我们希望允许用户在此过程中随时登录 但实际上并不想创建另一个登录页面 我希望我们可以简单地将用户重定向到现有登录并告诉 Spring Security 返回哪个 URL 我知道当会话超时和 或在没有
  • 为什么容器大小取决于绝对定位的子项?

    我正在尝试构建一个带有两个视频盒的类似 Skype 的界面 http jsfiddle net q9ER2 20 http jsfiddle net q9ER2 20