CSS:保持给定高度的元素的纵横比

2023-12-24

上面可能重复的链接不是这种情况的解决方案,因为高度对于多个断点来说将是固定值。

我有一些 DIVdisplay:inline-block,所以它们并排漂浮得很好。这些 DIV 都具有相同的高度,例如height:300px。稍后,我将使用 Ajax 在每个 DIV 中加载图像,并且我希望 DIV 保持图像的宽高比,这样当图像实际加载时它们就不会到处摆动。

因此,当 DIV 在浏览器中显示时,图像还没有出现,因此固定图像的高度height:auto;行不通的。

示例代码:

<div class="wrapper">
    <div class="item">...</div>
    <div class="item">...</div>
    <!-- More items here -->
</div>

CSS:

.item {
    display:inline-block;
    vertical-align:top;
    height: 300px;
    width: /* depending on the image ratio */
}

现在我知道如何保持给定宽度的元素的纵横比 (see here http://www.mademyday.de/css-height-equals-width-with-pure-css.html or here http://wellcaffeinated.net/articles/2012/12/10/very-simple-css-only-proportional-resizing-of-elements/)。但是由于我的 DIV 应该具有相同的高度,我如何保持纵横比并仅更改宽度?

一种(不太好的)解决方案是插入空白图像并将该图像调整为正确的尺寸。

问题是:当调整窗口大小时,所有DIV的高度都会改变,所以仅仅计算宽度是不够的。我可以用 Javascript 重新计算宽度,但我更喜欢纯 CSS 版本(如果可能的话)。

所以这是我的问题:如何仅通过 CSS 保持给定高度的元素的纵横比?

Thanks


您有纵横比,但没有实际的图像尺寸。我think你可以使用calc https://developer.mozilla.org/en-US/docs/Web/CSS/calc为此功能。但浏览器支持是一个问题:

/* Note: using 30px height for demonstration */
 .item {
    display: inline-block;
    vertical-align: top;
    height: 30px;
    background: #FC0;
}
.ratio-3-2 .item {
    /* 3:2 = 1.5 */
    width: calc(30px * 1.5);
}
.ratio-4-3 .item {
    /* 4:3 = 1.3333 */
    width: calc(30px * 1.3333);
}
<div class="wrapper ratio-3-2">
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
</div>
<div class="wrapper ratio-4-3">
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
</div>

在上面的演示中,第一组 div 的宽度为 45px,第二组的宽度为 40px。

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

CSS:保持给定高度的元素的纵横比 的相关文章

  • 如何解决此错误:属性 rel 的原始源值错误

    我正在尝试使用 w3c 验证我的网站 但出现错误 Bad value original source for attribute rel on element link The string original source is not a
  • 从顶部开始在同一水平线上显示同一行中的两个 div

    这是我的代码 floating box display inline block width 150px margin 10px border 3px solid 73AD21 after box border 3px solid red
  • 可以将position:absolute元素设为粘性吗?

    In CSS position sticky使元素能够显示position static行为 即 它采用文档流中的默认位置 直到到达某个滚动位置 然后采用position fixed行为 那么 这是否意味着我们不能使用position st
  • 每 2 行后使 html 表格的边框变厚

    我创建了一个包含一些内容的表 其中有 12 行和 2 列 我想显示边框 但每 4 行之后 我想将水平边框设置为比正常情况更粗 怎么做 请在这里帮忙 试试这个选择器 table tr nth of type 4n td border bott
  • 删除特定数据表上的所有边框

    我需要使用 PrimeFaces 隐藏一个数据表的所有边框 而不是全部 我尝试了很多事情 但没有人奏效 有谁知道该怎么做 我已将以下样式 单独 应用于ui datatable class border hidden important bo
  • 古老的“字幕”标签的替代品?

    marquee 标签的标准等效项是什么 我正在寻找 HTML C asp NET 或 ASPX jquery java 脚本的解决方案 marquee 标签未包含在标准中 因为它是 视觉 标签 而不是 语义 标签 因此 您想要的任何语言都没
  • 单击导航项锚链接时如何关闭切换菜单

    请看我的FIDDLE http jsfiddle net ayhpp8ax 我有一个带有 响应式 导航菜单 带有指向页面上元素的锚链接 的 1 页网站 当浏览器视口小于特定宽度 在我的情况下为 767px 时 使用此 javascript
  • 使用 python 在一个 html 页面中显示分割数据框的 HTML 代码

    我是 html css 新手 所以对以 html 格式显示的数据有疑问 我有一个很长的列表 我想将其拆分并以 html 格式显示为两个单独的列 例如 而不是 Col1 Col2 1 a 2 a 3 a 4 a 5 b 6 b 7 b 8 b
  • 在 Angular html 模板中访问常量枚举

    假设我有一个常量枚举 export const enum MyConstEnum Value1 Value1 Value2 Value2 Value3 Value3 现在我想在我的 Angular 模板中使用它 span This has
  • 无法使用 BeautifulSoup4 (Python 3) 抓取特定表

    我想从 Ligue 1 足球网站上抓取一张表格 具体来说 该表包含有关卡片和裁判的信息 http www ligue1 com LFPStats stats arbitre competition D1 http www ligue1 co
  • div 中的中心文本?

    我有一个div 30px高和500px宽的 这div可以包含两行文本 一行在一行 并相应地设置样式 填充 但有时它只包含一行 我希望它居中 这可能吗 要水平居中 请使用text align center 要垂直居中 只能使用vertical
  • Bootstrap:如何将按钮组对齐在中心(垂直)

    在下面的代码中
  • 防止垃圾邮件按钮呼叫功能

    如何防止调用函数时出现垃圾邮件按钮 就像用户只能在按钮上每 1 秒调用一次该函数 有办法做到吗 因为我尝试了 setTimeout 但没有成功 它仍然在发送垃圾邮件 顺便说一句 我使用 Jquery 这是我的代码
  • CSS 继承、别名和其他很酷的东西

    有一天 我随机浏览网页 发现了一些程序 可以让你编写 CSS 别名和其他很酷的东西 我现在不记得了 举个例子 我记得你可以这样做 myclass background color red greenfont 其中 greenfont 在其他
  • 导航栏下拉菜单(折叠)在 Bootstrap 5 中不起作用

    我在尝试使用以下命令创建响应式菜单或下拉按钮时遇到问题Bootstrap 5一切似乎都正常 导航图标和下拉图标出现 但它不起作用 当我单击nav图标或dropdown按钮 无dropdown menu apears 我想特别提到的是 我还包
  • 如何使用 Scrapy 从网站获取所有纯文本?

    我希望在 HTML 呈现后 可以从网站上看到所有文本 我正在使用 Scrapy 框架使用 Python 工作 和xpath body text 我能够获取它 但是带有 HTML 标签 而且我只想要文本 有什么解决办法吗 最简单的选择是ext
  • javascript 选择自定义光标 (svg)

    我正在动态地将光标更改为悬停时的本地 svg element on mouseover function this css cursor url svgs pointer svg 9 30 auto 工作正常 但我想选择该 svg 来操纵其
  • 为什么我的交互式图像仅在 Internet Explorer 上出现故障?

    我的问题 我为自己制作了一个图像地图 交互式图像 它在 Chrome safari 和 Firefox 上完美运行 然而 当我在可怕的互联网浏览器上尝试它时 它真的很糟糕 这些小点应该扩展到更大的盒子中 在互联网浏览器上它要么不起作用 要么
  • 使用 CSS 的响应式图像

    我发现调整图像大小以使其具有响应能力很棘手 我正在开发一个 php 应用程序来自动将网站转换为响应式版本 我有点被图像困住了 我已经成功地为网站上的每个图像添加了一个包装类 并且可以很好地调整图像的大小 我的问题在于自然小于窗口的图像 例如
  • 如何从浏览器向服务器发送“页面将关闭”消息?

    我想向每个 html 文档添加一个脚本 JavaScript 该脚本向服务器发送两条消息 页面确实打开了 页面将关闭 此消息包含页面打开的时间 打开消息应在文档加载时 或加载完成时 发送 这是简单的部分 The close message

随机推荐

  • 如何在 apollo graphql 服务器中创建嵌套解析器

    给定以下 apollo 服务器 graphql 架构 我想将它们分解为单独的模块 因此我不希望在根查询模式下进行作者查询 并希望将其分开 所以我在将其添加到根查询之前添加了另一个名为authorQueries的层 type Author i
  • 为什么屏幕截图不起作用(黑屏)?

    服务是 允许服务与桌面交互 unit Unit1 interface uses Windows Messages SysUtils Classes Graphics Controls SvcMgr Dialogs type TCopyDes
  • wget 转义特殊字符

    我正在尝试使用 wget 下载该网页的内容 https bibliotheque numerique paris fr search aspx SC DEFAULT Search query ForceSearch f Page 0 Pag
  • 生成复合饼图或饼图饼图

    下面是一个复合饼图的示例 也称为使用 Excel 绘制的饼图 是否可以使用 python 创建这样的图形 是的 这可以通过 matplotlib 实现 下面是改编自的示例here https matplotlib org 3 1 1 gal
  • Sparkfun Edge 引导加载程序问题

    今天终于到了 Sparkfun 板边板 遵循这个写得很好的指南 https codelabs developers google com codelabs sparkfun tensorflow 3 https codelabs devel
  • Sitecore索引重建实践

    在我们的 Sitecore 项目 6 6 0 rev 130404 中 我们拥有超过 200 万个 Sitecore 项目 我们配置了多个 Lucene 索引 每个索引对应这些项目的子集 我们面临的问题是重新构建这些索引所需的时间 特别是对
  • 将图像保存到文件目录

    我正在尝试使用文件目录保存图像 但我无法在没有错误的情况下保存图像 没有这样的文件夹 这是我的代码 我不确定我哪里出错了 Write image to directory func writeImageToPath path String
  • 当没有根标签时使用 lxml 解析 html

    我一直在使用lxml 和formalchemy 为sqlalchemy 构建一个脚手架库 但我很难让它们很好地发挥作用 具体来说 formalchemy FieldSet render 返回没有根标签的 html 片段 我似乎无法弄清楚如何
  • 在Python中生成随机文件名的最佳方法

    在Python中 生成一些随机文本以添加到我保存到服务器的文件 名称 之前的好方法或最佳方法是什么 只是为了确保它不会被覆盖 谢谢你 你可以使用UUID模块 http docs python org library uuid html用于生
  • VSTS - 持续交付 - 发布触发器不适用于标签

    更新2017 02 28 发布触发器中的标签不是源代码控制标签 它们是可以由构建步骤生成的标签 您可以自动标记您的构建 见下文 或在构建过程中手动标记 我还没有尝试过 我对标签的假设是flawed 这使得这个问题几乎无效 不过 我将尝试看看
  • 有没有办法在 Chrome DevTools 中更改时区?

    我用 JavaScript 创建了一个工具 用于确定当前 UTC 时间并检查另一个预定日期是否已经过去 我想将浏览器更改为另一个时区 看看测试是否仍然通过 但我无法找到执行此操作的方法 有没有办法在 Chrome DevTools 中做到这
  • SQL 强制显示十进制值

    我正在使用 Firebird 数据库并尝试以下 sql 但每次它返回 0 而不是 0 61538 等 SELECT COUNT myfield 26 totalcount FROM mytable 现在 当我删除 26 时 总计数将返回 1
  • 有没有办法增加代码本身的Java堆空间? [复制]

    这个问题在这里已经有答案了 可能的重复 是否可以动态更改最大 java 堆大小 https stackoverflow com questions 1091566 is it possible to dynamically change m
  • 在 R 传单中标记鼠标单击事件以获得闪亮效果

    如何在 R 中的传单地图中的标记上接收鼠标单击事件 我正在使用 RStudio 传单并运行 Shiny 我想获取标记的值 例如 ID 并使用它来更新侧边栏面板 你想使用input MAPID marker click 请参阅下面的示例 li
  • C# 中的类型初始化异常

    我将根据教程创建一个学生信息系统 一旦用户想要将新学生添加到数据库中 就会发生以下异常 我尝试了解一些有关 TypeInitializationException 的知识 并且我通过它的名称了解了一些 但我无法完全理解它 此外 我正在遵循的
  • MySQL 备份:我可以将单个 MyISAM 表文件复制到另一台具有不同 MySQL 版本和不同操作系统的服务器吗?

    我的意思是复制单个 MyISAM 表文件是 关闭 mysqld 并将 frm myd 和 myi 文件从一个数据库文件夹复制到另一个数据库文件夹 问题 a 我可以使用这种方式将MySQL数据库文件夹从一台服务器备份到另一台具有不同MySQL
  • 在 Web 开发中 - 哪些 ASP.net 可以做而 PHP 不能做? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何调整 PDF 上的页边距,我需要将 PDF 设置为适合页面

    我的基本脚本运行良好 它完全按照我想要的方式做 它获取 Google Sheet 将其转换为 PDF 然后通过电子邮件将 PDF 发送给我 我的问题是 如何调整 PDF 的页边距 我需要设置 PDF 以适合页面 我不能只调整纸张大小 因为它
  • TeamCity - FTP 上传到 Azure 失败

    我正在尝试使用 TeamCity 构建将 Net Core 2 0 项目部署到 Azure Web 应用程序 有 3 个步骤 1 Nuget 恢复2 点网发布3 FTP 上传 第 2 步之后 我会得到一个文件夹 Output 其中包含我需要
  • CSS:保持给定高度的元素的纵横比

    上面可能重复的链接不是这种情况的解决方案 因为高度对于多个断点来说将是固定值 我有一些 DIVdisplay inline block 所以它们并排漂浮得很好 这些 DIV 都具有相同的高度 例如height 300px 稍后 我将使用 A