我正在使用一系列 div 元素来显示一组客户端徽标。使用背景图像的原因是允许图像在 div 中垂直和水平居中,而不是使用 img 元素的更 hack-y 解决方案。
问题:我使用的是流畅的响应式网格,因此当浏览器低于最大宽度(1000 像素)时,div 元素开始缩小。这会导致一些客户端徽标(背景图像)在边缘被剪裁。这是给定的。当击中父元素的边缘时,我希望这些图像开始按比例缩小。
背景大小:包含部分解决了这个问题。唯一的缺点是它还会将背景图像的大小缩放到 100% 以上,这是一个问题。它会拉伸徽标,这对我来说不是一个好的解决方案。
我也可以不使用背景大小,并让客户端徽标设置最大宽度。但是,这会导致客户端列表转到响应式布局的额外行。我想避免这种情况,但对我来说这是唯一可行的解决方案。
话虽这么说,有没有办法利用背景大小而不放大它?或者有没有另一种方法来解决这个问题,让图像在他们的盒子里居中?
下面快速看一下代码:
HTML
<div class="client"><div class="client1"></div></div>
<div class="client"><div class="client2"></div></div>
<div class="client"><div class="client3"></div></div>
CSS
.clientlist .client { width: 20%; height: 90px; float: left; } /* Five clients a row */
.clientlist .client div {
width: 100%;
height: 100%;
background-position: center center;
background-repeat: no-repeat; } /* Vertically centers background images */
.clientlist .client .bcs { background-image: url(../images/client-bcs.jpg); } /* bunch more like this to define image */