我有一个70 x 50像素的盒子,我有各种图像,(SVG文件,所以没有大小)我想保持他们的宽高比,但有些图像是肖像,有些是景观大小.所以我可以这样做:
background-size: 70px auto;
Run Code Online (Sandbox Code Playgroud)
这将适用于所有景观图标.但它会拉伸肖像图像并使它们更高,因此它们仍然具有正确的宽高比,但顶部和底部将被切断.
有某种背景 - 最大尺寸?
(或者,我使用背景图像的唯一原因是因为您可以在水平和垂直方向上居中对齐图像,因此可以选择如何在li元素中垂直对齐img元素.)
kai*_*ser 29
使用CSS并不是那么难
background-size.background-size: contain;(IE9 +,Safari 4.1 +,FF 3.0 +,Opera 10+)和min/max-width/height容器元素.ric*_*nra 16
使用CSS3 背景大小和媒体查询的组合,无需JavaScript即可完全解决此问题.例如:
@media only screen and (max-width: 1000px) {
#element {
background-size: contain;
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,IE8或更低版本都不支持,因此如果您仍支持旧IE,则应包括后备.
我对这个问题有点晚(10 年),所以以前的答案对我来说还不够好
我们有一个名为clamp的css函数,它可以用最小值和最大值定义大小:clamp(<min-size>, <expected-size>, <max-size>
width: clamp(100px, 10vw, 500px);
Run Code Online (Sandbox Code Playgroud)
是的,我的朋友,你也可以使用它background-size。
background-size: clamp(1000px, 80%, 1500px) auto;
Run Code Online (Sandbox Code Playgroud)
*IE 支持一如既往地存在问题。