通过 CSS 根据高度设置元素宽度

2024-03-18

我有一组元素,要求它们的最小宽度等于它们的高度,但高度没有明确设置。目前我可以通过设置 css 来实现这一点min-width通过 jQuery 属性:

$(document).ready
(
    function()
    {
        $('.myClass').each
         (
             function() {$(this).css('min-width', $(this).css('height'));}
         );
    }
);  

是否可以直接在 css 中指定此行为?

这是一个 jsfiddle 演示了我想要实现的目标:http://jsfiddle.net/p8PeW/ http://jsfiddle.net/p8PeW/


其实不用JS也是可以的!

关键是要利用一个<img>,这是一个被替换的元素 http://reference.sitepoint.com/css/replacedelements,因此,如果您仅设置高度,则会自动设置其宽度,以保留图像的固有纵横比。

因此您可以执行以下操作:

<style>
  .container {
    position: relative;
    display: inline-block; /* shrink wrap */
    height: 50vh; /* arbitrary input height; adjust this */
  }
  .container > img {
    height: 100%; /* make the img's width 100% of the height of .container */
  }
  .contents {
    /* match size of .container, without influencing it */
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
  }
</style>

<div class="container">
  <!-- transparent image with 1:1 intrinsic aspect ratio -->
  <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7">
  <div class="contents">
    Put contents here.
  </div>
</div>

如果你想要.contents要具有 4:3 的宽高比,那么您可以将 img 的高度设置为 133%,因此将 img 的宽度设置为 133%.contents将为高度的 133%.container.

1:4长宽比的现场演示:https://jsbin.com/juduheq/edit https://jsbin.com/juduheq/edit(带有附加代码注释)。

另一个现场演示,其中容器的高度由同级元素中的文本量决定:https://jsbin.com/koyuxuh/edit https://jsbin.com/koyuxuh/edit

如果您想知道,img 数据 URI 用于1x1 像素透明 gif https://stackoverflow.com/questions/6018611/smallest-data-uri-image-possible-for-a-transparent-image)。如果图像的纵横比不是 1:1,则必须相应调整设置的高度值。您还可以使用<canvas> or <svg>元素而不是<img>(谢谢Simo https://stackoverflow.com/questions/6148012/setting-element-width-based-on-height-via-css/14911949?noredirect=1#comment47749635_14911949).

如果您想设置元素height基于width,有一个更简单的技巧使用 CSS 保持 div 的纵横比 https://stackoverflow.com/questions/1495407/maintain-the-aspect-ratio-of-a-div-with-css.

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

通过 CSS 根据高度设置元素宽度 的相关文章

  • 如何使用 :nth-child() 选择所有子项中的所有其他

    我正在开发一个评论系统 我需要拥有其他所有孩子 div 甚至是第一个孩子的孩子 用 CSS 选择 例如 假设我有这个标记 为了简单起见 省略了不需要的结束标签 div class comment div class comment div
  • 设置列表中前 10 项的样式

    可以使用像 li nth child 这样的东西来设置列表中前十项的样式吗 ol li item 1 li li item 2 li li item 3 li li item 4 li li item 5 li li item 6 li l
  • 保证金如何运作?

    我在下面提供了marginfix这是一个块级元素并且one and two也是块级的 但它们是浮动的 这就是为什么它们位于同一行布局的原因 但是marginfix也不浮动 块级元素应位于该元素下方 如下所示
  • 为什么内部 DIV 会溢出到外部 DIV 之外?

    我已经远离 HTML 和 CSS 很久了 找不到这个简单问题的解决方案 我有一个 div 位于另一个 div 中 外层黑色 内层橙色 我的 HTML 和 CSS 是 outer position fixed width 30 height
  • Bootstrap Grid System 新线看起来不太好

    最近 我开始在我的网站上制作一个管理页面来编辑多个小表 1 5 个条目 它们全部显示在一页上 并且表格嵌套在 div 中 如下所示 div class row div class col xs 12 col sm 4 col md 4 di
  • CSS以两种颜色显示一个字符[重复]

    这个问题在这里已经有答案了 css中是否可以用两种颜色制作单个字符 我的意思是例如字符 B 上半部分为红色 下半部分为蓝色 h1 font size 72px background webkit linear gradient red 49
  • 更改 Jumbotron 不透明度并使其全宽,而不影响字体和按钮

    想问一下如何更改 Jumbotron 不透明度并使其全宽而不影响字体和按钮的不透明度 jumbotron special text align center background attachment scroll background i
  • Material-UI 中 Box 和 Grid 有什么区别?

    有什么区别Box https material ui com components box box and Grid https material ui com components grid grid在 Material UI 中 何时使
  • 当 SVG 是编码的 CSS 背景图像时,如何更改 SVG 颜色?

    我的 CSS 文件中编码了一个 SVG 图标 如何在悬停时更改其颜色而不具有不同颜色的重复图标 在我的 CSS 文件中 我有 background image url data image svg xml 3Csvg xmlns http
  • 内部有图像的 CSS 响应式圆圈

    蓝色div有固定的高度和响应宽度 里面应该有一个相同高度的圆形图像 这是我尝试过的 https jsfiddle net xnkkrhnt 1 https jsfiddle net xnkkrhnt 1 如何使完美的中心圆始终为蓝色 div
  • 如何在node.js中使用express框架提供图像文件?

    在我的应用程序中 我使用 Express 框架来服务客户端文件 但是在为 html 元素提供背景图像时 它显示无法加载给定的 url var express require express http require http var app
  • Bootstrap 3.0:全宽彩色背景,中心紧凑列

    我想要制作一个条纹商业主题 类似于 W3Schools 创建的主题 主题可以找到here http www w3schools com bootstrap bootstrap theme company asp 它的特点是水平部分 由不同的
  • phonegap 中的 HTML 按钮没有反应

    我有三个 HTML 按钮 当我单击它们时 没有外部发光 并且它们不执行任何操作 我也尝试过对它们进行样式设计 但它们仍保留默认设计 我刚刚使用了普通代码 我只是不知道它们出了什么问题
  • 如何将表情符号水平居中?

    在非视网膜显示屏上 unicode 表情符号字符似乎溢出了其边界框 但在视网膜显示屏上 它仍保留在字符边界内 那么如何在视网膜和非视网膜显示屏上将表情符号水平居中在 div 中呢 非视网膜 Retina 这适用于视网膜屏幕 但在非视网膜显示
  • 在使用 jQuery 拖动时向元素添加 CSS 类

    是否可以在元素被拖动到特定区域时向其添加 CSS 类 并在元素被删除后替换该类 我并不是到处寻找这个功能 而是只在特定区域寻找这个功能 是的 这当然有可能 jQuery UI 提供了一些方便的选项和事件来执行此操作 对于初学者来说 可拖动元
  • 如何使选择框水平和垂直居中

    我正在尝试将选择框水平和垂直居中 这是 jsfiddle http jsfiddle net j3r9Lp81 http jsfiddle net j3r9Lp81 CSS div currency text align center HT
  • 如何更改点击事件上的引导插入符指向方向

    我正在使用 2 3 2 引导程序 因为当我单击菜单按钮时 我可以更改插入符号图标的位置 我需要当我单击图标插入符号向上时 当您单击另一个项目时 插入符号返回到初始状态 这怎么可能 导航代码 div div class container d
  • 元素在主体内找不到足够的空间 - JavaScript 样式

    相关信息 该页面包含两个元素 An
  • Firefox 和 Chrome 为 offsetTop 提供了不同的值

    我试图相对于输入字段定位一个跨度元素 让我们称之为 工具提示跨度 为此 我将工具提示跨度和输入字段包装在另一个跨度元素中 我们称之为 包装器跨度 该元素具有position relative 然后我设置position absolute在工
  • 用于生成多色文本的 jQuery 插件,该文本可在悬停时改变颜色

    我想为各种链接生成多色文本 并从预先指定的颜色数组中为各个字母随机分配颜色 当将鼠标悬停在带有文本的 div 上时 颜色会发生变化 我正在考虑一个 jQuery 插件 脚本将是可行的方法 我想知道是否存在这样的插件或近似插件 Thanks

随机推荐

  • JFreeChart - Java 堆空间问题

    我是第一次使用 JFreeChart 并且使用 TimeSeriesCollection 创建 TimeSeriesChart 我的数据库查询结果集就是全部 大约1000条记录 我在用org jfree date time Minute M
  • 如何为 CMake 构建过程本身添加 add_custom_command() ?

    有什么方法可以执行与 add custom command 等效的操作 当某个文件更改时运行外部脚本 但对于应该在 CMake 脚本执行本身期间运行的内容 即 用于依赖图生成 我们将源代码文件分为多个子库 并且有一些配置文件列出了哪个源文件
  • 如何通过 Plotly 从 Dash 中的回调函数访问 cookie?

    我有一个简单的 Dash 回调函数 如下所示 app callback dash dependencies Output test output children dash dependencies Input test input val
  • WPF MVVM 代码背后的最佳实践

    我是一名使用 MVVM 模式通过 WPF 学习 C 的学生 最近 我一直在研究我的应用程序的艺术 自定义启动屏幕 当我不希望它关闭时 它不应该关闭 我一直在网上搜索一种无需后台代码即可完成此操作的好方法 不幸的是 几天后我仍然没有找到令人满
  • java继承问题-必须在父类中创建空构造函数

    我在 netbeans ubuntu java 标准项目上编程 测试准备 当我创建 AccountStudent java 时出现错误 账户 java public abstract class Account protected doub
  • 使用 JNA 访问包含多个类的 DLL 方法

    我是使用 JNA 从 Java 访问 DLL 的新手 所以如果这对每个人来说都是显而易见的 请原谅我 我需要从 DLL 用 VB 编写 中的类访问方法 并且不能通过仅加载库来完成此操作 因为我看到如何访问其中的类 即该 DLL 名为 CDr
  • Jetpack Compose 不采用 colorScheme

    我有一个用 Jetpack Compose 编写的 Android 应用程序 我正在尝试使用应用程序中定义的 colorScheme 设置图标颜色 但它不起作用 下面是我的代码 Color kt import androidx compos
  • 如何从 Firebase getDocument 函数 (Swift) 中写入变量

    我想读取一个文档 从该文档中获取一个字段 并将一个变量设置为该字段的值 我希望写入在 Firebase getDocument 函数外部声明的变量 实际结果是该变量正在 Firebase getDocument 函数内写入 但在函数外部它为
  • Rails - Active Record:添加额外的选择列来查找(:全部)

    我想添加新列sum time entries hours 到sql选择 我正在查询这样的条目 issues Issue visible where options conditions all include gt status proje
  • Python Flask WTForm SelectField 在验证时具有枚举值“不是有效选择”

    我的 Python Flask 应用程序使用带有内置 python 枚举支持的 WTForms 我正在尝试提交一个表单 POST 其中 SelectField 由枚举的所有值填充 当我点击 提交 时 我收到错误 不是有效的选择 这看起来很奇
  • android.support.design.widget.TextInputLayout 无法实例化

    我想整合android support design widget TextInputLayout在我的安卓应用程序中 我已经复制了jar文件android support design jar从 sdk 到我的应用程序 lib 文件夹 我
  • 将 UserControl 绑定到其自己的 dependencyProperty 不起作用

    我遇到一个问题 当父级将该对象设置为数据绑定时 我无法创建使用自定义对象的属性的用户控件 尝试解释一下我在这里的意思是代码 自定义对象 public class MyObj public string Text get set public
  • 向 Django 管理添加自定义字段

    我已经用各个领域定义了我的模型 其中一些是自定义字段 我使用应用程序的 fields py 文件来验证信用卡数据 来源是here https github com bryanchow django creditcard fields cla
  • Unicorn 与 Ruby 2.4.1 导致奇怪的崩溃

    我正在从 Ruby 2 3 1 升级到 Ruby 2 4 1 这样做后 Unicorn 似乎与新版本不兼容 我收到以下错误 我正在使用 Unicorn 5 1 0 并尝试了 Unicorn 5 3 1 无济于事 我需要使用不同的库而不是 X
  • 树形视图验证

    树视图有叶节点复选框 我需要验证树视图 如果至少检查了一个节点 并且用户可以选择的节点数量不超过特定 例如 3 个节点 注意 Treeview是asp net树视图 不是ajax树视图 好吧 既然你没有提到你想要什么类型的验证 我将同时进行
  • Google 驱动器 - WSL2 中的虚拟驱动器安装

    有谁知道我是否可以在win10系统中的wsl2中安装Google驱动器 虚拟驱动器 谢谢 sudo mount t drvfs G mnt g 第一次这样做时 运行sudo mkdir mnt g first
  • 等待 QueueUserWorkItem 完成

    如果我将作业添加到线程池中QueueUserWorkItem 在所有工作完成之前 如何阻止我的计划继续进行 我知道我可以添加一些逻辑来阻止应用程序运行 直到所有作业完成 但我想知道是否有类似的东西Thread Join 或者是否有任何方法可
  • .NET Core 中的程序集绑定重定向

    如何在 NET Core 中进行程序集绑定重定向 我发现这个问题被问了几次 但没有提供解决方案 情况微不足道 我有一个引用版本 10 中的程序集 A 的包 我想使用版本 12 中的程序集 A 在标准 NET 中 它可以完美地与此配合使用
  • 在运行时隐藏水晶报表中的列?

    如何在运行时隐藏水晶报表中的列 感谢您的任何建议 选项 1 使用条件抑制逻辑隐藏 显示冗余字段 使用参数字段来驱动所需字段的抑制公式 如果您想消除字段之间的空格 则需要将字段堆叠在一起并适当地抑制它们 在您的示例中 第 2 列将包含 fie
  • 通过 CSS 根据高度设置元素宽度

    我有一组元素 要求它们的最小宽度等于它们的高度 但高度没有明确设置 目前我可以通过设置 css 来实现这一点min width通过 jQuery 属性 document ready function myClass each functio