Hintergrundbild an div anpassen


331

Ich habe ein Hintergrundbild in der folgenden Abteilung, aber das Bild wird abgeschnitten:

 <div style='text-align:center;background-image: url(/media/img_1_bg.jpg);background-repeat:no-repeat;width:450px;height:900px;' id="mainpage" align="center">

Gibt es eine Möglichkeit, das Hintergrundbild anzuzeigen, ohne es abzuschneiden?


Ist das Bild größer als das Div?
Grc

1
Ja, das Bild ist größer als das Div
Rajeev

1
Hintergrundbild: URL (/media/img_1_bg.jpg); Hintergrundgröße: enthalten; Hintergrundwiederholung: keine Wiederholung;
Waruna Manjula

Antworten:



117

Wenn Sie das Bild benötigen, um die gleichen Abmessungen des Div zu haben, ist dies meiner Meinung nach die eleganteste Lösung:

background-size: 100% 100%;

Wenn nicht, ist die Antwort von @grc die am besten geeignete.

Quelle: http://www.w3schools.com/cssref/css3_pr_background-size.asp


Schließlich fand ich die Lösung, um ganze Div mit dem Hintergrund zu passen. Vielen Dank!
Kamil Rykowski

5
aber dies würde das Bild dehnen ... gibt es eine Möglichkeit, das Hintergrundbild anzupassen, ohne es zu dehnen?
Junaid

1
Seitenverhältnis verloren jedoch.
Lerner

@Learner Wenn Sie die Abmessungen eines Bildes ändern, ohne das Bild zuzuschneiden, geht das Seitenverhältnis in 99% der Fälle verloren. Es ist gesunder Menschenverstand.
Vaibhav Vishal

11

Sie können diese Attribute verwenden:

background-size: contain;
background-repeat: no-repeat;

und Ihr Code ist dann so:

 <div style="text-align:center;background-image: url(/media/img_1_bg.jpg); background-size: contain;
background-repeat: no-repeat;" id="mainpage">

8

Sie verwenden auch diese:

background-size:contain;
height: 0;
width: 100%;
padding-top: 66,64%; 

Ich kenne Ihre Div-Werte nicht, aber nehmen wir an, Sie haben diese.

height: auto;
max-width: 600px;

Auch dies sind nur Zufallszahlen. Es könnte ziemlich schwierig sein, das Hintergrundbild (wenn Sie möchten) mit einer festen Breite für das Div zu erstellen. Verwenden Sie daher besser die maximale Breite. Und tatsächlich ist es nicht kompliziert, ein Div mit einem Hintergrundbild zu füllen. Stellen Sie einfach sicher, dass Sie das übergeordnete Element richtig formatieren, damit das Bild einen Platz hat, an den es gehen kann.

Chris


Link zu einer hoch bewerteten Antwort, die ausführlicher über diese Lösung spricht: stackoverflow.com/questions/600743/… und zeigt Ihnen, wie Sie die berechnen padding-top.
John Lee
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.