Wie zentriere ich ein (Hintergrund-) Bild innerhalb eines Div?

136

Ist es möglich, ein Hintergrundbild in einem Div zu zentrieren? Ich habe so ziemlich alles versucht - aber keinen Erfolg:

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

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

Ist das möglich?

oompahloompah
quelle

Antworten:

279
#doit {
    background: url(url) no-repeat center;
}
Jake Lucas
quelle
25
Vielen Dank. Das spezifische CSS für die Zentrierung lautet "Hintergrundposition: Mitte".
pmont
@Green: Siehe meine Antwort für Sprite-Hintergrundbilder.
Clayton
3
Wenn Sie möchten, dass das gesamte Bild mit dem Bild gefüllt wird und kein zusätzlicher Platz vorhanden ist, sollten Sie es verwenden. background-size: cover; Wenn Sie möchten, dass das gesamte Bild background-size: contain;
angezeigt wird
80

Versuchen background-position:center;

BEARBEITEN: Da diese Frage viele Aufrufe erhält, lohnt es sich, einige zusätzliche Informationen hinzuzufügen:

text-align: center funktioniert nicht, da das Hintergrundbild nicht Teil des Dokuments und daher nicht Teil des Flusses ist.

background-position:centerist eine Abkürzung für background-position: center center; ( background-position: horizontal vertical);

TimCodes.NET
quelle
Eigentlich brauchen Sie nurbackground-position:center;
Dave Sag
Die ausgewählte Antwort führt dazu, dass mein gesamter Hintergrund aus irgendeinem Grund verschwindet (um fair zu sein, mache ich einige Abfragen, die dies verursachen könnten?), Aber diese Antwort funktioniert. Upvote.
Bwoogie
15

Hintergrundposition verwenden:

background-position: 50% 50%;
Kapsel
quelle
1
nützlich, wenn Sie das Bild horizontal zentriert, aber vertikal oben benötigen: Hintergrundposition: 50% 0%;
Sébastien Gicquel
50% 0 ist kürzer als ;-) In CSS benötigen Sie keine Einheit, wenn der Wert 0 ist
Kapsel
8

Zum Zentrieren oder Positionieren des Hintergrundbilds sollten Sie die background-positionEigenschaft verwenden. Die Eigenschaft Hintergrundposition legt die Startposition eines Hintergrundbilds von topund an den leftSeiten des Elements fest. Die CSS-Syntax lautet background-position : xvalue yvalue;.

Von "xvalue" und "yvalue" unterstützte Werte sind Längeneinheiten wie pxund Prozent- und Richtungsnamen wie left, right und etc.

Der "x-Wert" ist die horizontale Position des Hintergrunds und beginnt oben am Element. Wenn Sie es verwenden, ist 50pxes "50px" von der Oberseite der Elemente entfernt. Und "yvalue" ist die vertikale Position, die den gleichen Zustand hat.

Wenn Sie also background-position: center;Ihr Hintergrundbild verwenden, wird es zentriert.

Aber ich benutze immer diesen Code:

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

Ich weiß, dass es so verwirrend ist, aber es bedeutet:

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

Und ich weiß, dass auch das background-sizeeine neue Eigenschaft ist und im komprimierten Code, was /coveraber diese Codes sind, bedeutet fillHintergrundgröße und Positionierung im Windows-Desktop-Hintergrund.

Sie können weitere Details sehen background-positionin hier und background-sizein hier .

Morteza Sadri
quelle
7

Wenn es sich bei Ihrem Hintergrundbild um ein vertikal ausgerichtetes Sprite-Blatt handelt, können Sie jedes Sprite wie folgt horizontal zentrieren:

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

Wenn Ihr Hintergrundbild ein horizontal ausgerichtetes Sprite-Blatt ist, können Sie jedes Sprite wie folgt vertikal zentrieren:

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

Wenn Ihr Sprite-Blatt kompakt ist oder Sie nicht versuchen, Ihr Hintergrundbild in einem der oben genannten Szenarien zu zentrieren, gelten diese Lösungen nicht.

Clayton
quelle
5

Das funktioniert bei mir:

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

Das funktioniert bei mir:

.network-connections-icon {
  background-image: url(url);
  background-size: 100%;
  width: 56px;
  height: 56px;
  margin: 0 auto;
}
Collin Adams
quelle
1
margin: 0 auto;wo automacht es horizontal innerhalb der div zentrieren. Danke dir!
Oyalhi
1

Das funktioniert bei mir:

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