有没有办法只使用 CSS 按比例调整(缩小)图像的大小?
我正在使用 JavaScript 方式,但只是想看看这是否可以通过 CSS 实现。
要使用 CSS 按比例调整图像大小:
img.resize {
width:540px; /* you can use % */
height: auto;
}
控制大小并保持比例:
#your-img {
height: auto;
width: auto;
max-width: 300px;
max-height: 300px;
}
如果是背景图片,请使用 background-size:contain。
示例 CSS:
#your-div {
background: url('image.jpg') no-repeat;
background-size:contain;
}
尝试
transform: scale(0.5, 0.5);
-ms-transform: scale(0.5, 0.5);
-webkit-transform: scale(0.5, 0.5);
您可以使用对象拟合属性:
.my-image {
width: 100px;
height: 100px;
object-fit: contain;
}
这将适合图像,而不会按比例改变。
请注意,这width:50%
会将其大小调整为图像可用空间的 50%,而max-width:50%
将图像大小调整为其自然大小的 50%。在使用此规则进行移动网页设计时要考虑这一点非常重要,因此max-width
应始终使用移动网页设计。
更新:这可能是一个旧的 Firefox 错误,现在似乎已经修复。
通过保持图像的纵横比来缩放图像
尝试这个,
img {
max-width:100%;
height:auto;
}
Revisited in 2015:
<img src="http://imageurl" style="width: auto; height: auto;max-width: 120px;max-height: 100px">
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
<img src="http://image.url" height="100" style="max-width: 120px">
<img style="width: 50%;" src="..." />
对我来说工作得很好......或者我错过了什么?
编辑:但请参阅肖恩关于意外升迁的警告。
css 属性 max-width 和 max-height很好用,但 IE6 不支持,我相信 IE7。您可能希望在高度/宽度上使用它,以免意外放大图像。您只想按比例限制最大高度/宽度。
img{
max-width:100%;
object-fit: scale-down;
}
为我工作。它会缩小较大的图像以适合盒子,但将较小的图像保留为原始大小。
我相信这是最简单的方法,也可以通过标签style
内的 inline 属性使用。<img>
.scaled
{
transform: scale(0.7); /* Equal to scaleX(0.7) scaleY(0.7) */
}
<img src="flower.png" class="scaled">
或者
<img src="flower.png" style="transform: scale(0.7);">
使用这种简单的缩放技术
img {
max-width: 100%;
height: auto;
}
@media {
img {
width: auto; /* for ie 8 */
}
}
img {
max-width:100%;
}
div {
width:100px;
}
使用此代码段,您可以以更有效的方式进行操作
我们可以使用媒体查询和响应式设计原则在浏览器中使用 CSS 调整图像大小。
@media screen and (orientation: portrait) {
img.ri {
max-width: 80%;
}
}
@media screen and (orientation: landscape) {
img.ri { max-height: 80%; }
}
你总是需要这样的东西
html
{
width: 100%;
height: 100%;
}
在你的 css 文件的顶部
尝试这个:
div.container {
max-width: 200px;//real picture size
max-height: 100px;
}
/* resize images */
div.container img {
width: 100%;
height: auto;
}
image_tag("/icons/icon.gif", height: '32', width: '32')
我需要将 height: '50px', width: '50px' 设置为图像标签,并且此代码从第一次尝试就可以使用 注意我尝试了上述所有代码但没有运气,所以这个可以工作,这是我的 _nav.html 中的代码。 erb:
<%= image_tag("#{current_user.image}", height: '50px', width: '50px') %>