一連の div 要素を使用して、一連のクライアント ロゴを表示しています。背景画像を使用する理由は、img 要素を使用したよりハックなソリューションではなく、画像を div 内で垂直方向および水平方向の中央に配置できるようにするためでした。
問題:流動的でレスポンシブなグリッドを使用しているため、ブラウザーが最大幅 (1000px) を下回ると、div 要素が縮小し始めます。これにより、一部のクライアント ロゴ (背景画像) が端で切り取られます。これは与えられたものです。親要素の端にヒットすると、これらの画像が縮小され始めます。
background-size: include はこれを部分的に解決します。唯一の欠点は、背景画像のサイズが 100% を超えて拡大されることです。これは問題です。ロゴが伸びますが、これは私にとっては良い解決策ではありません。
また、background-size を使用せずに、クライアント ロゴに最大幅を設定することもできます。ただし、これにより、クライアント リストがレスポンシブ レイアウトの余分な行に移動します。これを避けたいのですが、私にとってこれが唯一の有効な解決策です。
そうは言っても、スケールアップせずに背景サイズを利用する方法はありますか? または、これにアプローチして、画像をボックス内の中央に保つ別の方法はありますか?
コードを簡単に見てみましょう。
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 */