Ich versuche, die vertikale Ausrichtung zu verwenden: Mitten in einem Layout, um manchmal Text, manchmal Bilder vertikal zu zentrieren, aber es funktioniert nur Text. Kann mir jemand sagen warum?
HTML:
<div>
<img src="http://jsfiddle.net/img/logo.png"/>
</div>
<div>
<span> text </span>
</div>
CSS:
div{
width:200px;
height:200px;
background-color:red;
display:table;
margin:10px;
}
img, span{
display:table-cell;
vertical-align:middle;
}
http://jsfiddle.net/9uD8M/ Ich habe auch eine Geige erstellt
Fügen Sie border: 1px solid black
in Ihre img, span
-Tags ein und prüfen Sie dann beide Elemente im Browser dev. Konsole. Sie werden feststellen, dass der Abstand standardmäßig 100% des übergeordneten Objekts beträgt, während das Bild eine definierte Höhe (die Höhe des tatsächlichen Bildes) hat.
Sie richten diese Elemente also nicht wirklich relativ zum div aus, sondern richten den Text innerhalb des span-Elements relativ zum span aus. :)
Wenn Sie wirklich Tabellen für die vertikale Zentrierung verwenden möchten, finden Sie hier den richtigen Code: http://jsfiddle.net/WXLsY/
(vertical-align
und display:table-cell
gehen auf das übergeordnete Element, und Sie benötigen eine Wrapper-Tabelle.)
Es gibt jedoch auch andere Möglichkeiten (SO hat viele Antworten auf diese Frage, verwenden Sie einfach die Suche).
Hier ist eine Möglichkeit, das Problem zu beheben:
HTML:
<div>
<span><img src="http://jsfiddle.net/img/logo.png" /></span>
</div>
<div>
<span> text </span>
</div>
Fügen Sie Ihre img
in eine span
ein. Das Bild ist ein ersetztes Element, es darf keinen untergeordneten Inhalt enthalten. Daher funktioniert die vertikale Ausrichtung nicht.
CSS:
div {
width:200px;
height:200px;
background-color:red;
display:table;
margin:10px;
}
span {
display:table-cell;
vertical-align:middle;
}
Demo unter: http://jsfiddle.net/audetwebdesign/Fz6Nj/
Es gibt mehrere Möglichkeiten, dies zu tun. Sie können auch display: table-cell
auf das übergeordnete div
-Element anwenden. Dies wäre jedoch ein anderer Ansatz.
Um ein Bild in einer Tabellenzelle vertikal auszurichten, müssen Sie dem Bild eine Blockanzeige geben.
display: block
margin: 0 auto
der Rand: 0 Auto dient dazu, das Bild auf die Mitte auszurichten. Wenn Sie möchten, dass das Bild links ausgerichtet ist, fügen Sie dies nicht ein. Wenn Sie das Bild richtig ausrichten möchten, können Sie Folgendes hinzufügen:
float: right
Danke, G