我需要图像采取容器的整个宽度,除非结果的高度大于可用容器的视口高度。
基本上,我希望图像是响应性的,但它应该仍然适合屏幕。如果它不适合屏幕,它应该缩小,水平居中,最好在它的侧面添加黑色瓷砖。
当前,我的CSS类看起来是这样的:
.img-responsive{
display: block;
max-width: 100%;
min-width: 100%;
height: auto;
}
我试着在图像或专用容器上使用max-height,但纯CSS似乎无法实现此功能。
澄清:
下面是一个更详细的例子:
假设我有一个包含大量内容的可滚动容器。容器占用了整个视区宽度(假设是500px),容器的可用可见高度是整个视区高度减去一个navbar高度(假设是1000px)。
我无法预先知道容器的可见尺寸是多少,因为它总是可以改变的。
容器里面有任何东西,文本,图像等等。
现在,对于给定的图像,以下是可能的场景:
这里有一个JSFiddle解释这个问题
我建议不要为此使用IMG标记。而是使用div标记,然后使用背景图像属性。下面是这方面的代码,将容器大小设置为您喜欢的任何大小:
<div id="container"></div>
<style>
width: 500px;
height: 500px;
background-image: url('your url');
background-size: contain;
</style>
background-size:contain
是最好的方法。它将图像缩放到div中图像所能达到的最大值,而不会使其大于其本机大小。希望这有帮助
编辑:忘记添加,如果您希望它在容器的中心,这样当图像不适合容器的全部大小时,它周围有空白,您可以使用css代码background-position:center center;