2017-02-18 13 views
1

私は自分のホームページに登場した複数の画像を結合するためにCSSスプライトを作成しました。しかし、私は今それらの画像を表示する問題があります。あなたは、画像(店舗ロゴ)が一元的に表示されていないことを確認divの中にCSSスプライトをどのように配置するのですか?

enter image description here

。ここに私のhtmlコードは次のとおりです。

  <div class="slider-slick"> 
       <?php foreach($stores as $store){?> 
        <div class="slide"> 
         <div class="client"> 
          <div class="sprite sprite-<?php echo $store->_storeName?>"></div> 
         </div> 
        </div> 
       <?}?> 
      </div> 

スプライトのCSSは次のとおりです。

.sprite { 
    background-image: url(../images/spritesheet-logos.png); 
    background-repeat: no-repeat; 
    margin: auto; 
} 

.sprite-store1 { 
    width: 149px; 
    height: 71px; 
    background-position: -5px -5px; 
} 

.sprite-store2 { 
    width: 148px; 
    height: 23px; 
    background-position: -164px -5px; 
} 

と親のdivがある:彼らがどのように見えるのパディングを除去した後

.client { 
    padding: 70% 0 0; 
    background: #ffffff; 
} 

enter image description here

私はマージンを持つすべての異なるオプションを試してきましたが、本当にそれを作ることはできませんでした。彼らはこのように見えるようにする方法任意のアイデア:

enter image description here

答えて

1

をフレキシボックスを使用してみてください:

.client { 
    display: flex; 
    justify-content: center; 
    align-items: center; 
} 
+0

違いはありません。実際には、パディングを外した後、少し良く見えます(画像参照)。しかし、私は最後のimgのように見えるようにする必要があります。 – panipsilos

+0

@panipsilos ''client'に' height'を追加してみてください。うまくいくはずです。 – Stickers

+0

右、高さと幅を使って、実際に働きました! – panipsilos

-1

は、あなたの.spriteのCSSでこれを試してみてください:

background-position: center; 

(私はそれhereた)

+0

hm、それはうまくいきませんでした – panipsilos

0

内部要素の中央にパディングを使用しないでください異なる高さで。

は親に高さを与え、BG色

.client { 
    padding: 0; 
    background: #ffffff; 
    height: 71px; 
} 

を記入し、それを任意の高さとセンターとなりますので、変換を使用して、内側のdivを配置します。

.client > div { 
    position: relative; 
    top: 50%; 
    transform: translateY(-50%); 
} 
関連する問題