(背景)画像をdiv内で中央揃えにする方法は?


136

背景画像をdivの中央に配置することはできますか?私はほぼすべてを試しましたが、成功しませんでした:

<div id="doit">
  Lorem Ipsum ...
</div>

//CSS
#doit { background-image: url(images/pic.png); background-repeat: none; text-align: center; }

これは可能ですか?

回答:


279
#doit {
    background: url(url) no-repeat center;
}

25
ありがとう。中央揃えの具体的なCSSは、「background-position:center;」です。
pmont

@グリーン:スプライトの背景画像については私の回答をご覧ください。
クレイトン

3
div全体を画像で埋め、余分なスペースを入れないbackground-size: cover; 場合は、使用する必要があります。使用する画像の一部を切り取ったり、引き伸ばしたりせずに画像全体を表示したい場合background-size: contain;
Zlerp

80

試す background-position:center;

編集:この質問は多くの意見を得ているので、いくつかの追加情報を追加する価値があります:

text-align: center 背景画像はドキュメントの一部ではないため、フローの一部ではないため、機能しません。

background-position:centerの省略形ですbackground-position: center center。(background-position: horizontal vertical);


実際に必要なのはbackground-position:center;
Dave Sag

選択された回答により、何らかの理由で背景全体が消えます(公平にするために、原因となっている可能性のあるjqueryのことを行っていますか?)。しかし、この回答は機能します。賛成票。
bwoogie 2017

15

背景の位置を使用:

background-position: 50% 50%;

1
画像を水平方向中央に配置し、垂直方向上部に配置する必要がある場合に便利です。背景位置:50%0%;
セバスチャンジケル2014年

50%0の方がより短い;-) CSSでは、値が0の場合、ユニットは必要ありません
カプセル

8

背景画像を中央に配置または配置するには、background-positionproperty を使用する必要があります。背景位置プロパティは、背景から画像の開始位置を設定topし、left素子の側面を。CSS構文はbackground-position : xvalue yvalue;です。

「xvalue」と「yvalue」でサポートされている値は、長さの単位のようにpx、パーセンテージと方向の名前のように、左、右などです。

「xvalue」は背景の水平位置であり、要素の上から始まります。これは、使用する場合50px、要素の上から「50px」離れていることを意味します。また、「yvalue」は同じ条件の垂直位置です。

したがってbackground-position: center;、背景画像を使用すると中央に配置されます。

しかし、私はいつもこのコードを使います:

.yourclass {
  background: url(image.png) no-repeat center /cover;
 }

私はそれがとても混乱していることを知っていますが、それは意味します:

.yourclass {
  background-image: url(image.png);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}

また、これもbackground-size新しいプロパティであり、圧縮コードでは何であるかを知っていますが/cover、これらのコードはfill、Windowsデスクトップの背景での背景のサイズ変更と配置を意味します。

あなたはの詳細を見ることができますbackground-position、ここbackground-size、ここ


7

背景画像が垂直に配置されたスプライトシートの場合、次のように各スプライトを水平方向に中央揃えにすることができます。

#doit {
    background-image: url('images/pic.png'); 
    background-repeat: none;
    background-position: 50% [y position of sprite];
}

背景画像が水平に配置されたスプライトシートの場合、次のように各スプライトを垂直方向に中央揃えにすることができます。

#doit {
    background-image: url('images/pic.png'); 
    background-repeat: none;
    background-position: [x position of sprite] 50%;
}

スプライトシートがコンパクトな場合、または前述のシナリオのいずれかで背景画像を中央に配置しない場合、これらのソリューションは適用されません。


5

これは私にとってはうまくいきます:

#doit{
    background-image: url('images/pic.png');
    background-repeat: no-repeat;
    background-position: center;  
}  

3

これは私にとってはうまくいきます:

.network-connections-icon {
  background-image: url(url);
  background-size: 100%;
  width: 56px;
  height: 56px;
  margin: 0 auto;
}

1
margin: 0 auto;どこにautoそれはdiv要素の中に水平にセンタリングます。ありがとうございました!
oyalhi

1

これは私にとってはうまくいきます:

<style>
   .WidgetBody
        {   
            background: #F0F0F0;
            background-image:url('images/mini-loader.gif');
            background-position: 50% 50%;            
            background-repeat:no-repeat;            
        }
</style>        

0

これは、divの中央に画像を配置する場合に役立ちます。

.yourclass {
  background-image: url(image.png);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.