2014-01-12 18 views
15

Ja, offensichtlich mache ich es falsch. Warum kann es nicht so einfach sein wie horizontal auszurichten? Ich setze mich und meine Arbeit wird stundenlang angehalten, um nach oben zu schauen, wie ich mich vertikal in der Mitte ausrichtet, also muss ich euch nicht mit meinem blöden höchstwahrscheinlich wirklich einfachen Sie Frage befragen.Vertikale Ausrichtung funktioniert nie

Display Block oder Table-Cell, alles was ich lese funktioniert nie. Ich dachte "vielleicht, wenn ich meine img mit .divID img horizontal ausrichten und dann das div selbst vertikal ausrichten" traurig, ich wünschte, das würde funktionieren. Aber selbst wenn ich versuchte, das div vertikal in der Mitte zu zentrieren, verwirrte es die Bildzentrierung und funktionierte nicht einmal.

TL; DR: Ich zu versuchen, Hass vertikal Sachen ausrichten so viel.

Ich versuche, mein Headerbild vertikal und horizontal zentriert zu bekommen. Das ist mein Code, den ich arbeite.

HTML

<div id="wrapper"> 
    <div id="header"> 
     <div id="logo"> 
      <img src="http://i.imgur.com/d0umnxt.png" /> 
     </div> 
    </div> 
</div> 

CSS

body { 
    margin: 0px; 
} 
#header { 
    width: 100%; 
    height: 100px; 
    background-color: #151B1F; 
} 
#logo { 
    display: block; 
    margin: auto; 
} 
+0

ErraticFox, ein simular Q mit einer Prämie für eine Cross-Browser-Lösung, (IE <7) gefragt wurde, und beantwortet hier: http://stackoverflow.com/questions/7273338/how-to-vertical-align-an-image-inside-div – Wayne

+0

+1 für @ Waynes Link. Habe diesen Ansatz nie gesehen, aber der Mensch ist cool. – knrz

+0

@Wayne Ich habe das versucht, ich konnte es nicht für mich selbst arbeiten. – ErraticFox

Antwort

3

Ich hasse table und table-cell genauso viel wie der nächste Kerl, aber wenn Sie wissen, die Höhe des Elternelements (#header in Ihr Fall), werden die Dinge wirklich einfach.

Here's a working fiddle.

Sie müssen nur die folgenden Stile zu Ihrem CSS hinzufügen:

#header { 
    display: table; 
} 
#logo { 
    display: table-cell; 
    vertical-align: middle; 
    text-align: center; 
} 
+0

Sag mal, was wäre, wenn ich zwei Bilder im selben div hätte und ich sie nebeneinander und vertikal und horizontal in der Mitte ausrichten wollte, würde das funktionieren? :) – ErraticFox

+0

[Hier ist die JSFiddle für was Sie suchen] (http://jsfiddle.net/gdAry/1/). – knrz

+0

Ich meinte horizontal nebeneinander: P – ErraticFox