2010-09-08 4 views
11

So habe ich die div mit diesen Parametern:Wie zentriert man das Bild mit unbekannter Größe innerhalb div?

container { 
position:fixed; 
background-color: rgba(50,50,50,0.7); 
width:100%; 
height:100%; 
display:none;} 

Es das Bild enthält mit unbekannter Größe (die Größe ist dinamic und es kann anders sein).

Ich muss das Bild vertikal und horizontal ausrichten.

Bitte,

+0

Vielleicht hat Ihr CSS einen Tippfehler, aber ich möchte sicherstellen, dass Sie verstehen, dass Ihrem Klassenselektor ein Punkt vorausgehen sollte, wie in '.container {...}' – Robusto

+0

Natürlich weiß ich das :) Mein #Container ist keine Klasse, es ist ID. – Oshibka404

+1

Wenn es eine ID ist, dann sollten Sie es mit # voranstellen, wie Sie es in Ihrem Kommentar tun. Ich sag ja nur. – Robusto

Antwort

25

Verfahren Hintergrundbild arbeiten, mit Hintergrund-Position: mitte, leider werden Sie die Kontrolle über die Skalierung Ihres Bildes verlieren.

können Sie Ihr Bild wie folgt festgelegt:

position:absolute; 
margin:auto; 
top:0; 
bottom:0; 
left:0; 
right:0; 

PS. Beachten Sie, dass dies relativ zu seinem nächsten positionierten Elternteil zentriert ist.

+0

Danke! Es funktioniert :) – Oshibka404

+0

Funktioniert für ein Bild, funktioniert aber nicht für ein DIV.Scheint hart codierte CSS-Breite/Höhe zu erfordern, um es zu zentrieren. Beachten Sie, wenn Sie das style-Attribut entfernen und nur die HTML-Breite/Höhe auf dem div belassen, wird es nicht zentriert. Nein, so für das IMG-Tag. Warum diese Inkonsistenz? https://jsfiddle.net/L1rk46xy/ – Triynko

+0

perfekt. dynamisch. –

0

Die einfachste Cross-Browser-Art und Weise Ihres dynamisches Bild als Hintergrund-Eigenschaft auf den #container einstellen würde helfen:

<div id="container" style="background: url(path/to/image.png) no-repeat 50% 50%"></div> 
4

Fügen Sie die folgende: zwei

Die erste Linien zentrieren sie vertikal, die letzten horizontal.

display: table-cell; 
vertical-align: middle ; 
text-align: center; 

weitere Informationen finden Sie hier: http://www.w3.org/Style/Examples/007/center

0

ich glaube der einfachste Weg, dies zu tun ist:

.container img { 
    display:block; 
    margin:auto; 
} 

.Behälter passen Sie Ihre div passen

oh ich lese nicht alles (nicht sicher, ob Ihnen eine Klasse oder ID war) deiner Frage.

dies scheint zu funktionieren:

<style type="text/css"> 
.wraptocenter { 
    display: table-cell; 
    text-align: center; 
    vertical-align: middle; 
    width: ...; 
    height: ...; 
} 
.wraptocenter * { 
    vertical-align: middle; 
} 
/*\*//*/ 
.wraptocenter { 
    display: block; 
} 
.wraptocenter span { 
    display: inline-block; 
    height: 100%; 
    width: 1px; 
} 
/**/ 
</style> 
<!--[if lt IE 8]><style> 
.wraptocenter span { 
    display: inline-block; 
    height: 100%; 
} 
</style><![endif]--> 

volle Punktzahl: http://www.brunildo.org/test/img_center.html