我正在处理图像,我遇到了纵横比问题。
<img src="big_image.jpg" width="900" height="600" alt="" />
如您所见,高度和宽度已经指定。我为图像添加了CSS规则:
img {
max-width: 500px;
}
但对于big_image.jpg,我得到的宽度=500,高度=600。如何设置图像的大小,同时保持其纵横比。
我正在处理图像,我遇到了纵横比问题。
<img src="big_image.jpg" width="900" height="600" alt="" />
如您所见,高度和宽度已经指定。我为图像添加了CSS规则:
img {
max-width: 500px;
}
但对于big_image.jpg,我得到的宽度=500,高度=600。如何设置图像的大小,同时保持其纵横比。
当前回答
要强制图像符合精确的大小,您不需要编写太多代码。太简单了
国际货币基金组织{宽度:200px;高度:自动;对象拟合:包含;/*按图像大小调整徽标*/-o-object-fit:contain;/*为opera浏览器安装徽标*/对象位置:顶部;/*设置徽标位置*/-o对象位置:顶部;/*opera浏览器的徽标位置*/}<img src=“http://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-logo.png“alt=”徽标“>
其他回答
将图像容器标记的CSS类设置为图像类:
<div class="image-full"></div>
并将其添加到CSS样式表中。
.image-full {
background: url(...some image...) no-repeat;
background-size: cover;
background-position: center center;
}
您可以使用:-
transform: scaleX(1.2);
以改变宽度而不改变高度。
And
transform: scaleY(1.2);
更改高度而不更改宽度
您可以在html和css中的图像和视频标记上使用此选项。这也不会改变纵横比。
要保持响应图像,同时仍然强制图像具有一定的纵横比,可以执行以下操作:
HTML格式:
<div class="ratio2-1">
<img src="../image.png" alt="image">
</div>
和SCSS:
.ratio2-1 {
overflow: hidden;
position: relative;
&:before {
content: '';
display: block;
padding-top: 50%; // ratio 2:1
}
img {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
}
无论作者上传的图像大小如何,这都可以用于强制执行特定的纵横比。
感谢@Ksesohttp://codepen.io/Kseso/pen/bfdhg.查看此URL以了解更多比率和工作示例。
下面的解决方案将允许图像的放大和缩小,具体取决于父框的宽度。
所有图像都有一个固定宽度的父容器,仅用于演示。在生产中,这将是父框的宽度。
最佳实践(2018):
此解决方案告诉浏览器以最大可用宽度渲染图像,并以该宽度的百分比调整高度。
.父级{宽度:100px;}国际货币基金组织{显示:块;宽度:100%;高度:自动;}<p>此图像最初为400x400像素,但应通过CSS调整大小:</p><div class=“parent”><img width=“400”height=“400”src=“https://placehold.it/400x400"></div>
更新颖的解决方案:
使用更高级的解决方案,无论图像大小如何,您都可以裁剪图像,并添加背景色来补偿裁剪。
.父级{宽度:100px;}.容器{显示:块;宽度:100%;高度:自动;位置:相对;溢出:隐藏;填充:34.37%0 0;/*34.37%=100/(w/w)=100/*/}.容器img{显示:块;最大宽度:100%;最大高度:100%;位置:绝对;顶部:0;底部:0;左:0;右:0;}<p>此图像最初为640x220,但应通过CSS调整大小:</p><div class=“parent”><div class=“container”><img width=“640”height=“220”src=“https://placehold.it/640x220"></div></div>
对于指定填充的行,需要计算图像的纵横比,例如:
640px (w) = 100%
220px (h) = ?
640/220 = 2.909
100/2.909 = 34.37%
因此,顶部填充=34.37%。
国际货币基金组织{最大宽度:80px;/*也适用于百分比值,如100%*/高度:自动;}<p>此图像最初为400x400像素,但应通过CSS调整大小:</p><img width=“400”height=“400”src=“https://i.stack.imgur.com/aEEkn.png"><p>假设HTML的作者故意想要高度为宽度值的一半,此CSS将忽略HTML作者的愿望,这可能是您想要的,也可能不是您想要的:</p><img width=“400”height=“200”src=“https://i.stack.imgur.com/aEEkn.png">