使用CSS按比例调整图像大小?
有没有办法仅使用 CSS 按比例调整(缩小)图像大小?
我正在使用 JavaScript 方式,但只是想看看这是否可以用 CSS 实现。
Is there a way to resize (scale down) images proportionally using ONLY CSS?
I'm doing the JavaScript way, but just trying to see if this is possible with CSS.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(18)
要使用 CSS 按比例调整图像大小:
To resize the image proportionally using CSS:
控制大小并保持比例:
Control size and maintain proportion :
如果是背景图片,请使用background-size:contain。
示例CSS:
If it's a background image, use background-size:contain.
Example css:
尝试
Try
您可以使用object-fit属性:
这将适合图像,而不改变比例。
You can use object-fit property:
This will fit image, without changing the proportionally.
请注意,
width:50%
会将其大小调整为图像的可用空间的 50%,而max-width:50%
将调整大小图像自然尺寸的 50%。 在移动网页设计中使用此规则时,这一点非常重要,因此对于移动网页设计,应始终使用max-width
。更新:这可能是一个旧的 Firefox 错误,现在似乎已经修复。
Notice that
width:50%
will resize it to 50% of the available space for the image, whilemax-width:50%
will resize the image to 50% of its natural size. This is very important to take into account when using this rules for mobile web design, so for mobile web designmax-width
should always be used.UPDATE: This was probably an old Firefox bug, that seems to have been fixed by now.
要通过保持图像的纵横比来缩放图像
试试这个,
To scale an image by keeping its aspect ratio
Try this,
2015 年重新审视:
我重新审视了它,因为所有常见的浏览器现在都具有上面 Cherif 建议的工作自动功能,因此效果更好,因为您不需要知道图像是否更宽而不是更高。
旧版本:
例如,如果您受到 120x100 盒子的限制,您可以这样做
Revisited in 2015:
I've revisited it as all common browsers now have working auto suggested by Cherif above, so that works even better as you don't need to know if image is wider than taller.
older version:
If you are limited by box of 120x100 for example you can do
对我来说工作得很好......或者我错过了什么?
编辑:但是请参阅肖恩关于意外增大尺寸的警告。
worked just fine for me ... Or am I missing something?
Edit: But see Shawn's caveat about accidentally upsizing.
css 属性 max-width 和 max-height 工作很好,但 IE6 不支持,我相信 IE7。 您可能希望在高度/宽度上使用此功能,这样您就不会意外放大图像。 您只想按比例限制最大高度/宽度。
The css properties max-width and max-height work great, but aren't supported by IE6 and I believe IE7. You would want to use this over height / width so you don't accidentally scale an image up. You would just want to limit the maximum height/width proportionately.
对我有用。 它会缩小较大的图像以适合框,但保留较小的图像的原始大小。
works for me. It scales down larger images to fit in the box, but leaves smaller images their original size.
我相信这是最简单的方法,也可以通过
标记中的内联
style
属性使用。或者
I believe this is the easiest way to do it, also possible using through the inline
style
attribute within the<img>
tag.or
使用这种简单的缩放技术
Use this easy scaling technique
通过这个片段,你可以以更有效的方式做到这一点
with this snippet you can do it in a more efficient way
我们可以使用媒体查询和响应式设计原理在浏览器中使用 CSS 来调整图像大小。
We can resize image using CSS in the browser using media queries and the principle of responsive design.
总是需要这样的东西
你的 css 文件顶部
You always need something like this
at the top of your css file
尝试这个:
Try this:
image_tag("/icons/icon.gif",高度:'32',宽度:'32')
我需要将 height: '50px', width: '50px' 设置为图像标签,此代码从第一次尝试开始工作,注意我尝试了上述所有代码,但没有运气,所以这个有效,这是我的 _nav.html 中的代码。 erb:
<%= image_tag("#{current_user.image}", 高度: '50px', 宽度: '50px') %>
image_tag("/icons/icon.gif", height: '32', width: '32')
I need to set height: '50px', width: '50px' to image tag and this code works from first try note I tried all the above code but no luck so this one works and here is my code from my _nav.html.erb:
<%= image_tag("#{current_user.image}", height: '50px', width: '50px') %>