缩放图像以适合边界框

2023-12-02

是否有纯 CSS 解决方案将图像缩放到边界框(保持纵横比)?如果图像比容器大,则此方法有效:

img {
  max-width: 100%;
  max-height: 100%;
}

Example:

  • 用例 1(有效):http://jsfiddle.net/Jp5AQ/2/
  • 用例 2(有效):http://jsfiddle.net/Jp5AQ/3/

但我想放大图像,直到尺寸达到容器的 100%。

  • 用例 3(不起作用):http://jsfiddle.net/Jp5AQ/4/

感谢CSS3,有一个解决方案!

解决方案是将图像设置为background-image然后设置background-size to contain.

HTML

<div class='bounding-box'>
</div>

CSS

.bounding-box {
  background-image: url(...);
  background-repeat: no-repeat;
  background-size: contain;
}

在这里测试一下:

与最新浏览器完全兼容:http://caniuse.com/background-img-opts

要将 div 居中对齐,您可以使用以下变体:

.bounding-box {
  background-image: url(...);
  background-size: contain;
  position: absolute;
  background-position: center;
  background-repeat: no-repeat;
  height: 100%;
  width: 100%;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

缩放图像以适合边界框 的相关文章

随机推荐

  • Hibernate 方言中用户定义的 PostgreSQL 函数抛出异常

    是否可以注册一个用数据库编写并用扩展 hibernate Postgres Dialect 编写的自定义函数 如下所示 在HQL中使用该函数时 接收函数不存在异常 Postgres函数 create or replace function
  • android:windowSoftInputMode="adjustResize" 没有任何区别吗?

    我有一个使用此布局的人造对话框
  • 动画容器:RenderFlex 底部溢出 154 像素

    我在设置不同的内容高度时调整动画容器的大小时遇到 问题 调整大小时抛出异常 渲染库捕获异常 布局期间抛出以下断言 RenderFlex 底部溢出了 154 个像素 这是重现问题的最小示例 在我的真实应用程序中要复杂得多 但您明白了 bool
  • 为什么 pthread_join() 不会造成死锁?

    下面是我希望程序陷入死锁的程序 因为 pthread join 是线程上的阻塞等待 它正在等待终止 但我看到 pthread join 不会阻塞并返回失败 35 EDEADLK 你能帮我理解为什么 pthread join 解除阻塞吗 因为
  • 通过 Intent 发送电子邮件:SecurityException

    以下是我通过 Gmail 应用程序发送电子邮件的方法 Intent emailIntent new Intent Intent ACTION SEND emailIntent setClassName com google android
  • CSS:如何使文本与周围边框居中

    我正在尝试将一条线穿过整个背景的文本居中 文本的两侧都有一些填充 您根本看不到线条 我很难找到一个好的纯 CSS 方法来解决这个问题 这是一个明显错误的 jsfiddle 但它是一个开始 http jsfiddle net gtspk HT
  • android:ListView 中的复选框(所选元素的奇怪行为)

    I found here and here类似的问题 但问题略有不同 在 ListView 中 我尝试放置一个适配器 从基本适配器扩展 其中包含复选框 列表视图布局
  • Gulp-sass 不会编译为 CSS

    我无法将 grunt sass 编译为 css 看过很多其他类似的帖子并使用了建议 但似乎没有任何效果 我可以让其他插件正常工作 例如 del 来删除东西 如下所示 所以看来我的环境没问题 并且我可以让普通的 vanilla sass 编译
  • 如何在express和socket.io上使用passport?

    我目前正在尝试为我的 node js 应用程序设置基本身份验证系统 现在我使用express 3 0 0rc5 passport 0 1 12 和socket io 0 9 10 以及Mongoose 作为会话数据的存储 我也一直在玩eve
  • Perl 多行字符串正则表达式

    我尝试通过逐行读取文件来查找文件中的所有字符串 在 或 之间 my strings open FILE file or die File operation failed foreach my line
  • 创建带有文章标题的 url

    我在 MongoDB 中有文章 我希望文章的 URL 易于阅读 如果我有一篇名为 如何通过 Heroku 无缝使用 Flask 和 MongoDB 的文章 我希望 URL 类似于localhost 5000 blog how to use
  • 从我的应用程序中的特定位置打开街景

    我正在尝试从我的 Android 应用程序中打开全景模式下的 Google 街景 我真的想打开 Google 街景而不是 Google 地图 因为我想将它与使用 VR 眼镜的虚拟现实应用程序一起使用 该应用程序使用立体视图和全景模式 我想要
  • 当我缩减 Azure 角色时哪些实例会停止?

    假设我有一个正在运行三个实例的 Azure 角色 我要求 Azure 通过管理门户或管理 API 将角色计数更改为两个 Azure 将如何决定取消哪个角色 正如英国开发人员提到的 Windows Azure Fabric 控制器决定关闭哪些
  • 无法从共享首选项中获取值

    我想从下面定义的共享首选项加载名称的值 但我不能 如何提取名称的值并对其进行烘烤 或者最好将其放入文本字 段中 public class FillingActivity extends Activity TextView username
  • 错误解析/page.xhtml:错误跟踪[行:42]实体“nbsp”被引用,但未声明

    我想在 JSF 页面中使用不间断空格 我知道 在纯 HTML 中我可以使用 nbsp 为此 这工作得很好 然而 当我把这些 nbsp 在 Facelets 页面中 则错误如下 解析 page xhtml 时出错 错误跟踪 行 42 引用了实
  • 从 JNI 调用 main 方法失败

    我创建了一个 C 类 应该调用Main main依照指示 http docs oracle com javase 7 docs technotes guides jni spec invocation html wp9502 我没有让它工作
  • List 的自定义包含 c#

    我正在尝试在列表中使用 List Contains 我要比较的对象来自 C 中的服务引用 并且它们的 Equals 方法不适合我的需求 我一直在研究 IEquatables 或如何在我 给定 的对象中覆盖我的 Equals 方法 但我似乎找
  • 从原型迁移到 jquery

    我正在将 js 库从原型迁移到 jquery 但是 我不知道如何替换以下代码 var utilityMethods autoHide function element Element addMethods SPAN utilityMetho
  • 具有 64 位整数的 PyQt4 spinbox

    是否可以修改 PyQt spinbox 以处理大于 32 位的整数 2147483648 2147483647 我知道可以用 C 编写一个具有 64 位 int 数据类型的新旋转框 但这会变得复杂 您可以使用以下命令获得值大于 32 位的旋
  • 缩放图像以适合边界框

    是否有纯 CSS 解决方案将图像缩放到边界框 保持纵横比 如果图像比容器大 则此方法有效 img max width 100 max height 100 Example 用例 1 有效 http jsfiddle net Jp5AQ 2