缩放图像直到 X 或 Y 与容器相同,然后裁剪其余部分

2024-03-25

我正在多个位置加载图像,网站主题将以不同的尺寸显示它们。我尝试了 CSS 属性,发现我可以使用高度和宽度参数缩放图像,并使用位置:相对和溢出:隐藏来裁剪图像。

但我想做的是两者的结合。缩小图像,直到宽度等于容器元素的宽度或高度等于容器元素的高度(以先到者为准)。然后裁剪其余部分。

因此,无论形状如何,图像都应该成比例并且填充容器。

有任何想法吗?

奇妙


我不完全确定您要做什么,但这里有一些指导,可以帮助您仅使用 CSS 属性来实现一些图像调整大小和剪切。

下面的代码将根据容器的大小调整图像的大小。

<div id="THE-OUTER-CONTAINER" style="width:100px; height:100px; overflow:hidden;">
<img src="YOUR_PIC.jpg" style="width:100%; height:100%;"/>
</div>

关键是理解img的高度和宽度属性可以使用%。在设计中使用 % 非常有助于提供灵活性。当然,这会强制图像达到父容器的大小。因此,如果父容器的纵横比不正确,图像将会变形。

为了保持纵横比,您需要提前知道要扩展的尺寸,并且仅在 img 标签样式中指定。例如,下面的代码将仅沿宽度正确调整图像的大小。

<div id="THE-OUTER-CONTAINER" style="width:100px; height:100px; overflow:hidden;">
<img src="YOUR_PIC.jpg" style="width:100%;"/>
</div>

使用上面的内容,如果 YOUR_PIC.jpg 是 200x200 像素,它会将其缩小到 100 像素,并从底部剪掉 100 像素。

如果您希望它在宽度/高度范围内扩展,您可以在 img 上使用“max-width”/“min-width”和“max-height”/“min-height”CSS 属性。将它们设置为您需要的值。然后你会得到这样的东西:

<div id="THE-OUTER-CONTAINER" style="width:100px; height:100px; overflow:hidden;">
<img src="YOUR_PIC.jpg" style="width:100%; height:100%; max-width:50px; max-height:50px;"/>
</div>

上面的代码将确保图像对于大于 50px 的容器不会扩展,但对于任何低于 50px 的容器会缩小。

或者,您可以使用一些 javascript 动态地计算尺寸。如果您事先不知道要调整哪个维度的大小,这将很有用。使用 javascript 计算大小,然后相应地设置上述 css 属性。我建议使用 jquery 让你的 javascript 生活更轻松。

希望这能让您走上正轨。

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

缩放图像直到 X 或 Y 与容器相同,然后裁剪其余部分 的相关文章

  • 没有文本的内联块元素呈现不同

    div style background color red div style display inline block background color green height 20px width 20px div div div
  • 在外部 div 悬停时将样式应用于内部 div [重复]

    这个问题在这里已经有答案了 我有一些看起来像这样的 HTML div class TheOuterClass div class TheInnerClass some text div div 使用以下 CSS TheOuterClass
  • 180 度旋转 div 只能从一侧点击

    我遇到了一个相当奇怪的问题 我有一个可以通过 CSS3 旋转的 div 该 div 有一个前 div 子级和后 div 子级 后 div 具有 webkit transform rotateY 180deg set 问题是 一旦旋转父元素以
  • 如何使用 CSS 创建菱形内的标题?

    我想创建一种风格处理 类似于 这样的事情如何运作 使用 CSS 变换 您可以使用两个伪元素和 CSS 旋转变换来创建菱形形状 如下面的代码片段所示 这将使文本不受变换的影响 因此定位它会相对容易 The rotateZ 45deg 产生等边
  • 当我使用 ctx.drawImage() 在画布中放置另一个图像时,无法将画布另存为图像

    我正在尝试制作绘图应用程序 您可以在画布上绘制一些内容 并通过单击 保存 按钮将结果保存为服务器上的图像 您还可以放置另一张图像作为绘图的背景 问题是 当我使用 ctx drawImage 将图像放入画布时 我无法将画布保存为图像 因为什么
  • 如何正确设置 100% DIV 高度以匹配文档/窗口高度?

    我有一个包装器 位于中心位置 并带有 y 重复的背景图像 div some content div wrapper width 900px margin 0 auto 0 auto background image url image jp
  • Fabric JS ClipPath:裁剪后如何使图像适合画布?

    我使用 FabricJS 和 ClipPath 属性实现了图像裁剪 问题是如何使裁剪后的图像适合画布 我希望裁剪后的图像填充画布区域 但不知道是否可以使用 Fabric js 来完成 因此 我希望用户单击 裁剪 按钮后图像的选定部分适合画布
  • jQuery UI - 可拖动在放置后无法立即工作

    HTML div class character list div class character list container div img class 1 src http ahna web44 net img charas 13 p
  • 如何获取javafx imageView中显示图像的宽度/高度?

    我需要获取 imegView 中显示图像的宽度 高度 并将其与 imageView getImage getWidth getHeight 中的原始图像大小进行比较 并在用户从应用程序 GUI 中调整其大小时监听更改 I get this
  • 让右侧的 Div 填满所有可用空间

    我想创建两个并排的 div 但我希望左侧的 div 为 300px 右侧的 div 占据屏幕上的剩余部分 这怎么可能呢 谢谢 最直接的 我会说正确的 方法是使用display table wrapper display table widt
  • 如何在Nightwatch中测试伪元素的css属性

    我想使用 Nightwatch 测试我的网站上的背景图像是否正确 但它设置为 before 伪元素的背景 这是 CSS icon circle delete before content background url images svg
  • 使用选择器获取最接近的父元素(不包括当前元素)

    我正在尝试获取元素的最接近的父元素 看着 closest https developer mozilla org en US docs Web API Element closest 如果选择器与元素匹配 它似乎会返回元素本身 Closes
  • CSS淡入淡出动画延迟计时

    我正在尝试使用 css3 创建幻灯片效果 我有三张图像 我需要将它们相互淡入淡出 每次转换需要持续 3 秒 第一张图像显示 3 秒 然后淡入第二张图像 第三张图像同样显示 我不确定如何计算关键帧的百分比 Codepen http codep
  • 选择部分文本右对齐[重复]

    这个问题在这里已经有答案了 我想知道是否有任何方法可以将选项文本的一部分向右对齐 在下面 您可以看到我有一个选择 左侧有一些名称 右侧有 垂直 我需要将 垂直 向右拉 有什么办法可以做到这一点吗
  • 删除添加到购物车通知并更改 Woocommerce 中的“添加到购物车”按钮

    How to remove has been added to your cart text from shopping cart page and how to replace quantity and add to cart butto
  • 如何在 div 标签上添加带边框的三角形

    我有一个 div 标签 我想在它上面添加一个小三角形 注意 我希望我的 div 标签具有某种颜色的边框 以及另一种颜色的 div 主体 假设我的 div 背景为白色 边框为蓝色 请看这个 http fiddle jshell net pau
  • 带有多个嵌入图像的 VB.NET 电子邮件

    请有人给我一些关于如何发送包含多个嵌入图像的电子邮件的指示 我可以发送一封基本电子邮件 也可以使用 AlternateView 发送一封带有单个嵌入图像的电子邮件 在 bodyText 中作为 XElement 我有 img src 然后我
  • 使用 CSS 过渡动画 max-height

    我想创建一个仅由类名驱动的展开 折叠动画 javascript 用于切换类名 我正在上一堂课max height 4em overflow hidden 和另一个max height 255em 我也尝试过这个值none 根本没有动画 这个
  • CSS Hex 到速记十六进制转换

    将十六进制转换为速记十六进制的正确算法是什么 例如 996633很容易被转换为 963 但如果是这样怎么办 F362C3 我的第一个猜测是我只取每种颜色的第一个值并使用它 所以 F362C3变成 F6C 但我不知道如何从数学上证明这种方法的
  • 针对较小屏幕的拆分表行

    我有一个固定宽度为 960px 有 5 列的表格 当我在移动设备中查看时 我想制作第 3 4 5 列 看起来就像在下一行 有什么方法可以让 CSS 打断一行 使其看起来像这样 但是 还保留原来的HTML代码吗 您可以使用 FlexBox f

随机推荐

  • 如何前进到字节流中包含的压缩字节序列?

    我有一个字节流 它是多个部分的串联 其中每个部分都由一个标头和一个紧缩的字节流组成 我需要拆分此字节流部分 但标头仅包含有关未压缩形式的数据的信息 没有有关压缩数据长度的提示 因此我可以在流中正确前进并解析下一部分 到目前为止 我发现超越压
  • Rake 任务 Rails:upgrade:check 在 Windows 上不起作用。 Rails 3 升级问题

    有什么解决方案可以解决Windows上的rake任务rails upgrade check的问题吗 为了解决这个问题 我安装了这个 gem gem install POpen4 v 0 1 4 gem install win32 open3
  • 您如何组织 NInject 模块?

    NInject 的模块架构看起来很有用 但我担心它会变得有点混乱 您如何组织模块 您将它们保留在哪个组件中 您如何决定哪些接线进入哪个模块 每个子系统都有一个模块 当然 什么值得归类为 子系统 的定义取决于 在某些情况下 某些绑定的责任被推
  • 我的自定义开放图对象的自定义属性未显示在共享对话框中

    我无法获取 Android 应用程序的共享对话框中显示的自定义开放图对象的自定义属性 我创建了一个自定义对象channel在命名空间中myradio android 并定义了一个自定义属性当前歌曲标题在频道中 我还创建了一个自定义操作enj
  • 将 Marketo 表单添加到 Gatsby/JSX

    我正在尝试将 Marketo 表单添加到 Gatsby 站点中 但在将脚本注入页面的顺序方面遇到问题 当我尝试渲染下面的组件时 收到错误消息 ReferenceError MktoForms2 未定义 我尝试注释掉整个 useEffect
  • 如何在 UIMarkupTextPrintFormatter 中添加图像?

    我正在尝试使用直接 HTML 打印文件 但是 在将图像添加到打印文件中时遇到困难 如何在我要打印的 HTML 中引用项目中的图像 UIMarkupTextPrintFormatter 支持标签吗 实际上比我想象的要简单得多 NSString
  • 向 Firefox 扩展添加屏幕截图功能

    是否有跨平台方法从 Firefox 扩展中获取屏幕截图 理想情况下 我希望能够截取 dom 元素的屏幕截图 无论它在页面上是否可见 例如 var 屏幕截图 屏幕截图 document getElementById example 任何指示或
  • 在python中打印下标

    在Python 3 3中 有什么方法可以在打印时使字符串中的部分文本成为下标吗 例如H2 H 然后是下标 2 如果您只关心数字 则可以使用str maketrans https docs python org 3 library stdty
  • JSF 2 复选框和布尔值获取器

    我正在生成一个基于 web 服务的 jaxws 客户端 Jaxb 将使用 java lang Boolean 而不是原始类型生成布尔值 除此之外 它还会生成 bean 的 is 命名约定 但是 如果我尝试将布尔值 例如 isOptional
  • Axios“无法在模块外部使用 import 语句”

    我有一个 Vue js 应用程序 其中两个文件包含 import axios from axios 这些文件位于应用程序内的 src lib 中 并在第一行包含 import 语句 无论 package json 说什么 在 Github
  • Vuex - 多次调度后运行函数

    我正在创建一个应用程序 在某个时刻我需要加载一些数据 但为了让用户看不到损坏的数据 我插入了一个加载组件 目前 我在负载中放置了 setTimeout 但在某些时候 API 响应可能需要超过 1 秒 所以我想仅在所有调度完成时更新加载状态
  • Ninject 教程/文档?

    根据官方网站 http ninject org learn 了解 Ninject 的最佳地点是官方维基 http wiki github com ninject ninject在 Github 上 真的吗 作为一个初学者 我发现官方维基 h
  • 使用什么命令代替 urllib.request.urlretrieve?

    我目前正在编写一个从 URL 下载文件的脚本 import urllib request urllib request urlretrieve my url my filename 文档urllib request urlretrieve
  • 如何让Java.awt.Robot输入unicode字符? (是否可以?)

    我们有一个用户提供的字符串 其中可能包含 unicode 字符 并且我们希望机器人键入该字符串 如何将字符串转换为机器人将使用的键码 你如何做到这一点 使它也独立于java版本 1 3 gt 1 6 我们对 ascii 字符所做的工作是 c
  • gRPC / Protobuf 接口版本控制

    假设我们使用 gRCP Protobuf 来连接许多应用程序 这些应用程序是由他们自己的团队以自己的速度开发和发布的 随着时间的推移 同一应用程序将出现不同版本 例如 安装在用户 PC 上的桌面应用程序 它们在定义的界面上使用不同的版本 虽
  • WordPress 搜索栏仅输出帖子标题

    我想用 PHP 创建一个 Wordpress 搜索栏 仅显示在我网站的一页中 我正在开发一个我制作的新主题 因此 搜索栏应该只输出与搜索关键字相关的我的帖子的永久链接 标题 我现在遇到的问题是搜索输出显示 lorem ipsum 文本和侧边
  • 存储 ASP.NET 会话变量的最佳解决方案是什么?状态服务器还是SQL服务器?

    状态服务器还是SQL服务器 存储 ASP NET 会话变量的最佳解决方案是什么 各自的优点和缺点是什么 在任何特定情况下 一个比另一个更好吗 以下是一些关于优点 缺点的想法 我还添加了 Microsoft Velocity 分布式缓存解决方
  • SQL 日期间隙

    我试图根据状态代码查找表中的间隙 表如下所示 状态表 StateID PK Code 1 AK 2 AL 3 AR 状态模型表 StateModelID StateID EfftiveDate ExpirationDate 1 1 2012
  • 尽管已对其进行了压缩,但仍然出现错误 FAILED BINDER TRANSACTION

    我想从以下位置返回图像添加更多索赔 to 添加索赔 listView 当我点击提交时button in 添加更多索赔 我收到消息E JavaBinder FAILED BINDER TRANSACTION 我用这个method https
  • 缩放图像直到 X 或 Y 与容器相同,然后裁剪其余部分

    我正在多个位置加载图像 网站主题将以不同的尺寸显示它们 我尝试了 CSS 属性 发现我可以使用高度和宽度参数缩放图像 并使用位置 相对和溢出 隐藏来裁剪图像 但我想做的是两者的结合 缩小图像 直到宽度等于容器元素的宽度或高度等于容器元素的高