如何在保持纵横比的同时将 div 包含在视口内

2024-01-31

存在一个正方形 div,其宽度为任意百分比(并且高度相同),需要随窗口缩放。

它必须保持在视口的范围内(即:不剪裁到外部)并保持其正方形形状 - 本质上是复制background-size: contain;CSS 的特性。

我需要支持iOS Safari v3.2,所以无法使用vw/vh/vmin/vmax并且会strongly更喜欢纯 CSS 解决方案。


您可以使用它来设置:after in CSS

DEMO http://jsfiddle.net/kevinPHPkevin/5tzk3/307/ http://jsfiddle.net/kevinPHPkevin/5tzk3/307/

.wrapper:after {
    padding-top: 100%; /*Sets ratio*/
    display: block;
    content: '';
}

解释:

这是通过不插入内容来实现的:after然后给div一个100%的填充顶部,从而将div的底部向下推。如果你把它改成,比如说,padding-top: 56.25%;它将给出 16:9 的比例。插入时填充不会干扰 div 的内容:after并且仅与关联的元素:after该元素内的内容将受到影响。在这种情况下,没有元素使用:after因为您总是使用新的 div 来实现此效果。

Edited

DEMO http://jsfiddle.net/kevinPHPkevin/5tzk3/309/ http://jsfiddle.net/kevinPHPkevin/5tzk3/309/

阻止它扩展到超出某个点,设置一个max-width and max-height

.wrapper {
    width: 50%;
    display: inline-block;
    position: relative;
    max-height:350px;
    max-width:350px;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在保持纵横比的同时将 div 包含在视口内 的相关文章

  • 如何使用div绘制曲线?

    我需要使用 CSS 绘制两条曲线 我尝试过组装一些divs 使用CSSborder radius绘制弧形面板 但结果很糟糕 还有更好的算术吗 正如我之前在评论中提到的 请不要使用CSS用于实现复杂的曲线和形状 虽然仍然可以使用 CSS 来实
  • 获取 CSS 计算结果以设置自定义属性

    我正在测试一个 CSS 框架 用于通过微类指定数字 例如 类似的东西 div class fifty percent wide 可能会翻译成width 50 该实现使用 CSS 变量 自定义属性 考虑以下 CSS fifty number
  • 使用 PHP 将 class="active" 添加到活动页面

    动态标头 CSS 类更改为活动使用 PHP 目录 我想要的班级 li 在活动目录下更改标签 现在 每个指南都向我展示了当您的页面等于它时如何执行此操作 但我想更改 这 li li 取决于我所在的目录 例如 如果说我在 http exampl
  • 没有嵌套容器的桌面和移动 Flexbox 布局

    我有 3 个 div 它们必须按移动布局的特定顺序排列 但我必须将第 2 个 div 作为桌面布局的侧边栏 所以对于移动设备 分区1 分区2 分区3 对于桌面 分区1 div2 分区3 在桌面布局中 div 2 有阴影背景 因此必须是父级的
  • 拖放区缩略图宽度图像大小

    如何更改上传图像的缩略图大小 我在我的javascript中尝试过thumbnailWidth 350 但是这不会增加缩略图大小 而缩略图只是看起来放大了 如何操作图像缩略图大小 HTML section section
  • 使组合高度等于浏览器窗口的高度

    http featuredfotografer com http featuredfotografer com Codemirror div 与 header div 结合占用的高度超过了浏览器的高度 我怎样才能使它们的总高度达到浏览器窗口
  • 如何设置 Twitter 的嵌入时间线宽度百分比(响应式/流体设计)

    我正在寻找设置Twitter 的嵌入时间线 https dev twitter com docs embedded timelines 当您有固定的设计时 这很容易 但这不是我的情况 我实际上正在为新网站构建流畅且响应式的设计 我的问题是
  • 如何在 Bootstrap 列中使用文本溢出?

    假设我有一行具有固定高度 并且我在其列中插入了一些文本 如果太长 我希望将其剪掉 并在行尾添加三个点 如下所示 我在用着文本溢出 省略号 我的行中有此属性 但无法使其工作 JsFiddle http jsfiddle net Alexnot
  • 两种颜色边框

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

    是否可以选择开槽元素中的后代元素 像这样的例子 slotted div p color blue div p test p div 这不起作用 不 您只能选择顶级节点 slotted slotted 中的选择器只能是复合选择器 https
  • CSS3 box-shadow 用于类似重叠的 div

    我正在尝试用css3来实现这种效果 HTML 代码显然是这样的
  • 使用 CSS 的平行四边形导航背景

    我正在尝试创建此导航菜单 绿色突出显示是活动页面 灰色是悬停状态 我可以使用以下 CSS 制作平行四边形 ul nav li a text decoration none padding 4px 10px border radius 3px
  • 从 Bootstrap 中删除字形

    如何从 bootstrap 3 中删除所有字形实例 看起来它已经大量嵌入到 css 文件中了 我正在努力使文件大小尽可能最小 只需简单地克隆引导程序https github com twbs bootstrap sass https git
  • 删除数据表列中的额外填充

    你好 我创建了 JQuery DataTables 如下所示 所以我的问题是如何删除 图片 列中过多的填充 这就是我初始化表的方式 violators tbl DataTable aoColumnDefs bSortable false a
  • 如何更改bootstrap中form-control弹出窗口中必填字段的默认消息?

  • 如何设置菜单按钮和菜单项的样式

    我尝试更改菜单按钮中的样式 我可以更改菜单按钮样式 但不能更改其菜单项 无论我尝试什么 菜单按钮内的菜单项都保持不变 menu button fx background color black menu button label fx ba
  • 保持未知数量的 div 居中,每行最多 4 个

    我有一个简单的问题 但我自己无法解决 简而言之 有一个未知电话我必须在页面中放置的元素数量 最多 每行 4 个元素 但仍居中 此图片给您一个提示 我为了示例而设置它 详细 在上图中我涵盖了不同的场景 例如 如果总共有 5 个元素 则应使用第
  • 如何在使用页面锚点导航时设置“激活”类以在 Angular 2 中引导导航栏?

    我正在使用 Angular 2 和 Bootstrap 4 创建一个单页网站 我创建了一个始终位于页面顶部的导航栏组件 并且我正在使用页面锚点导航 id 请注意 我还没有创建路由模块 到目前为止还没有必要这样做 导航栏代码如下
  • 避免响应式页面的重复内容

    我目前正在做一个涉及响应式设计的项目 整个布局应该使用HTML和CSS来实现 我知道可以使用 java 脚本将内容从一个列布局移动到另一列布局 而无需复制内容 但是使用 HTML 和 CSS 是否可以实现相同的效果 以下面的例子为例 它会在
  • 如何仅在最后一个
  • 处给出透明六边形角度?
  • 我必须制作这样的菜单 替代文本 http shup com Shup 330421 1104422739 My Desktop png http shup com Shup 330421 1104422739 My Desktop png

随机推荐

  • 通过页面重新加载进行重定向 Vue JS Router

    我有一个带有 Login vue 和 Home vue 文件的应用程序 因为我将管理 HTML 网站转换为 vue 3 应用程序 所以我的 javascript 仅适用于页面重新加载 创建应用程序时 我选择为 SPA 添加路由器 也许我不应
  • F# 中的显式类型递归

    灵感来自这个问题 https stackoverflow com questions 1228644 are infinite types aka recursive types not possible in f F 中可以显式类型递归吗
  • 选中/取消选中所有复选框 - AngularJS ng-repeat

    我有一个如下所示的结构 http jsfiddle net deeptechtons TKVH6 http jsfiddle net deeptechtons TKVH6 div ul li Check All li ul div
  • PHP 在选择复选框时读取行的所有内容

    I have a PHP form as attached The form entries are pulled from mysql server On selection of a particular checkbox I need
  • 将 Numpy 数组保存为图像

    我有一个 Numpy 数组类型的矩阵 我如何将它作为图像写入磁盘 任何格式都可以 png jpeg bmp 一个重要的限制是 PIL 不存在 Using PIL https pillow readthedocs io en stable 保
  • 适用于多个目的地和单个来源的 iOS MKDirections

    我的应用程序需要从一组 10 个步行点中获取距离用户 最近 的步行点 我已经看到 MKDirections 使用 calculateDirectionsWithCompletionHandler 针对单个源 目标位置执行此操作 我的问题是
  • 每 x 秒调用一次函数(Python)[重复]

    这个问题在这里已经有答案了 我想每 10 秒调用一个函数 实际上 它是一个 Web API 但该函数可能需要随机 t 秒才能返回 假设 t 为 0 1 至 1 0 秒 我们能想到的最简单的代码是 while True func take t
  • Docker BuildKit --mount=type=cache 不起作用,为什么?

    我正在尝试实施Buildkit 的缓存挂载功能 https github com moby buildkit blob master frontend dockerfile docs experimental md run mounttyp
  • 多个源代码存储库

    我使用 Mercurial 对源代码进行版本控制 但有些人更喜欢其他版本控制系统 如 git Bazaar SVN CVS 我想知道 是否可以同时将一个存储库存储在多个系统下 以便人们可以使用他们想要的任何存储库 GitHub 开发了hg
  • Nginx 无法加载 CSS 和 JS 文件(MIME 类型错误)?

    我的网站上出现以下错误 Error There are multiple templates named velvet Each template needs a unique name 1b1a247fc034d5089f331ec954
  • 如何在 Angularjs 中使用 $event 更新事件点击时的 ng-model

    http plnkr co ywhmyO http plnkr co ywhmyO 我尝试过编译和指令 但一无所获 示例中的编译代码是直接从 Angular 网站上撕下来的 但我不知道如何使用它 非常感谢任何指导 你被这样的事实绊倒了ng
  • 如何在类图中显示单例关系

    如果一个类包含指向单例类的指针 它可以是aggregation 据我了解 这不可能是has a关系 因为该类不会创建单例类的实例 它只是像这样使用它association关系 标题并不像所写的那样100 完全有意义 有单例类 但没有真正的单
  • 以编程方式设置 GoogleMapOptions

    我像这样膨胀我的片段 GoogleMap map MapFragment getFragmentManager findFragmentById R id MapFragment map Fragment getMap 在这里我有我的选择
  • Lambda 日志和 CloudWatch PutLogEvents 限制

    I know Lambda 调用PutLogEvents在内部记录消息 CloudWatch 有限制PutLogEvents PutLogEvents 每个日志流每秒 5 个请求 我想知道 Lambda 日志流也可以被限制吗PutLogEv
  • Javascript 将 unicode 字符串转换为“标题大小写”

    我有一个 javascript 大小写转换问题 由于非英文字母 我无法解决该问题 我主要关心的是土耳其字母 我需要做的是这样的 你好世界 gt 你好世界 你好世界 gt 你好世界 你好世界 gt 你好世界 这是我到目前为止所取得的成就 St
  • Rails + Rspec + 机架 + 会话测试

    Gemfile 文件 机架 gt 1 6 0 我在将会话变量从 rspec 测试传递到 Rack 中间件时遇到了一些问题 我在互联网上浏览了很多文章 但没有任何解决方案可以帮助我理解 所以基本上我希望能够在我的中间件类中做到这一点 req
  • Grizzly / Glassfish - 无法建立 websockets 握手

    我正在尝试让 WebSockets 在 Grizzly Glassfish 之上工作 我已经克隆了示例 WebSockets 聊天应用程序 http java net projects grizzly sources git show sa
  • realloc() 旧大小无效

    我正在做 K R C 编程书中的一个练习 该程序用于从用户输入的一组行中找到最长的行 然后打印它 这是我写的 部分内容直接摘自书中 include
  • 将值插值作为属性组件

    我有一个关于 Angular2 中的插值是如何完成的问题 例如 我有组件 X 其值为 Input 在父组件中我有这样的代码
  • 如何在保持纵横比的同时将 div 包含在视口内

    存在一个正方形 div 其宽度为任意百分比 并且高度相同 需要随窗口缩放 它必须保持在视口的范围内 即 不剪裁到外部 并保持其正方形形状 本质上是复制background size contain CSS 的特性 我需要支持iOS Safa