我正在处理图像,我遇到了纵横比问题。
<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。如何设置图像的大小,同时保持其纵横比。
当前回答
https://jsfiddle.net/sot2qgj6/3/
如果你想用固定的宽度百分比,而不是固定的宽度像素来放置图像,这就是答案。
这在处理不同大小的屏幕时很有用。
诀窍是
使用padding top设置高度与宽度之间的距离。使用position:absolute将图像放入填充空间。使用最大高度和最大宽度确保图像不会覆盖父元素。使用display:block和margin:auto将图像居中。
我也评论了小提琴中的大部分技巧。
我还找到了其他方法来实现这一点。在html中不会有真实的图像,所以当我需要html中的“img”元素时,我个人更倾向于首选答案。
使用背景的简单csshttp://jsfiddle.net/4660s79h/2/
顶部有单词的背景图像http://jsfiddle.net/4660s79h/1/
使用位置绝对值的概念如下http://www.w3schools.com/howto/howto_css_aspect_ratio.asp
其他回答
您可以创建如下div:
<div class="image" style="background-image:url('/to/your/image')"></div>
并使用此css设置其样式:
height: 100%;
width: 100%;
background-position: center center;
background-repeat: no-repeat;
background-size: contain; // this can also be cover
只需将此添加到css中,它将自动收缩和扩展,并保持原始比例。
img {
display: block;
max-width: 100%;
max-height: 100%;
width: auto;
height: auto;
}
可以使用纵横比属性css
.my-image {
aspect-ratio: 1/1; // square
aspect-ratio: 16/9; // wide screen 1080p
aspect-ratio: 4/3;
aspect-ratio: 2/3;
}
要强制图像符合精确的大小,您不需要编写太多代码。太简单了
国际货币基金组织{宽度:200px;高度:自动;对象拟合:包含;/*按图像大小调整徽标*/-o-object-fit:contain;/*为opera浏览器安装徽标*/对象位置:顶部;/*设置徽标位置*/-o对象位置:顶部;/*opera浏览器的徽标位置*/}<img src=“http://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-logo.png“alt=”徽标“>
您可以使用:-
transform: scaleX(1.2);
以改变宽度而不改变高度。
And
transform: scaleY(1.2);
更改高度而不更改宽度
您可以在html和css中的图像和视频标记上使用此选项。这也不会改变纵横比。