我有一张原始尺寸为 900x300 的图像。我有一个大小为 320x180 的图像容器。当我展示这个时,图像看起来被挤压了。我理解这是因为比例不一样。所以我打算展示它的一个缩放版本,但只是操纵它的 CSS。是否可以?也欢迎任何其他可以使用 CSS 技巧很好地显示此图像而不会使其在此框中看起来被挤压的想法。
这是一个可以玩的小提琴。我目前正在设置width
and height
to100%
并隐藏溢出。
这是因为你的图像比例是 3:1。您还需要将容器大小设置为 3:1...如果您希望宽度为 320 像素,那么您必须将高度设置为 106 像素(准确地说是 106.6 像素),或者与原始图像成比例的其他值。这是一个更新的小提琴。
.boutique-grid .box-container {
position: relative;
height: 106px;
width: 320px;
}
你会注意到它现在是成比例的。
您的问题没有提供您想要的缩放类型,但我可以给您一个想法,如果您希望图像应该在其位置缩放,并具有完整尺寸,然后使用以下 CSS 和悬停属性:-
.boutique-grid .box-container:hover {
position: absolute;
width:900px;
height:300px;
}
在这里查看小提琴:- http://jsfiddle.net/npsingh/3m9aK/6/show/
此外,如果您想通过弹出窗口提供缩放,则可以通过以下链接实现此目的:- http://cssdemos.tupence.co.uk/image-popup.htm
如果您想使用 center 属性裁剪图像,然后在该容器中使用,那么您应该使用 margin 属性裁剪图像,这样您就可以使用相同的纵横比裁剪图像。请参阅下面的帖子:-
http://www.squareonemd.co.uk/how-to-crop-an-image-with-a-css-class/
让我知道它是否会起作用......
如果你想要一个缩放版本,那么你可以在 css 中使用 css 背景属性。如果这是您想要的,这是代码:
.box-container {
position: relative;
height: 180px;
width: 320px;
background:url("http://cf.shopious.com/images/store_logos/original/9f84c96905ade833f48054cda524c7960dc0f424.png") no-repeat;
background-position:-500px -50px;
}
并从 html 中删除 img。这给出了缩放的效果
.box-container img {width:100%;
height:auto;}
将上面的代码添加到您的 css 中。这样图像就不会被挤压。
只需从 HTML 中删除图像元素并background-image
在您的 CSS 中使用即可。
然后,您可以cover
使用background-size
. 这将负责缩放图像以适应框并保持比例:
.boutique-grid .box-container {
position: relative;
width: 320px;
height: 180px;
background-image:url(...);
background-size:cover;
background-position:center;
}
使用这种方法,您无需担心重新计算尺寸,因为浏览器会为您完成。
使用background-position
微调其位置。
有关背景大小的更多详细信息:
https ://developer.mozilla.org/en-US/docs/Web/CSS/background-size