Block-Elemente horizontal zentrieren und ausrichten

Auf Websites müssen Elemente häufig horizontal ausgerichtet werden, z.B. links, rechts oder zentriert. Mit der Eigenschaft text-align ist das zwar möglich, allerdings nur bei Inline- und Inline-Block-Elementen. Bei Block-Elementen kann text-align nicht angewendet werden, bis auf einige Ausnahmen bei früheren Browsern, die text-align fehlerhaft interpretierten.

Im Grunde gibt es keine Eigenschaften in CSS, um gezielt Block-Elemente horizontal auszurichten. Daher muss man andere Mittel zur Hilfe nehmen und für die Ausrichtung verwenden. Da Block-Elemente bei Textrichtung ltr standardmäßig links ausgerichtet werden, ist die Zentrierung und die Ausrichtung auf der rechten Seite von Bedeutung. 

Block-Elemente horizontal ausrichten

Block-Elemente mit margin zentrieren

Wurde für ein Block-Element eine Breite zugewiesen, kann man es mit margin zentrieren. Hierfür bedient man sich den Eigenschaften margin-right und margin-left und weist ihnen den Wert auto zu.

Block-Elemente mit margin zentrieren

Block-Element mit margin rechts ausrichten

Wenn man ein Block-Element rechts ausrichten möchte, braucht man lediglich den Wert von margin-right auf 0 zu ändern. Der folgende Code gilt für die Textrichtung ltr (left-to-right), da bei rtl das Element sowieso rechts angeordnet wird.

Block-Elemente rechts ausrichten mit margin

Block-Elemente bei Textrichtung rtl mit margin links ausrichten

Falls man eine Website mit der Textrichtung rtl (right-to-left) erstellt, wie das z.B. bei arabischen Websites der Fall ist, dann kann man mit dem folgenden Code das Block-Element links ausrichten.

Block-Element bei rtl links ausrichten

Block-Element mit float links oder rechts ausrichten

Die Eigenschaft float ist zwar nicht dafür gedacht, um Elemente horizontal auszurichten, sondern um Elemente umfließen zu lassen. Allerdings hat man damit denselben Effekt und kann die Block-Elemente rechts oder links ausrichten. Eine Zentrierung ist damit jedoch nicht möglich. Man sollte nur darauf achten, mit clear das Umfließen zu beenden, sofern es notwendig ist.

Beispiele mit margin und float

Die folgenden HTML- und CSS-Codes gelten für die Textrichtung ltr.

.links { 
width: 150px;
border: 1px solid black;
}

.zentriert { 
margin-left: auto;
margin-right: auto;
width: 150px;
border: 1px solid black;
}

.rechts { 
margin-left: auto;
margin-right: 0;
width: 150px;
border: 1px solid black;
}

.float-left {
float: left;
width: 150px;
border: 1px solid black;
}

.float-right {
float: right;
width: 150px;
border: 1px solid black;
}
<div class="links">Element links</div>
<div class="zentriert">Element zentriert</div>
<div class="rechts">Element rechts</div>
<div class="float-left">float: left</div>
<div class="float-right">float: right</div>

Die Ansicht im Browser würde bei Textrichtung ltr wie folgt sein.

Horizontal ausrichten mit float und margin

Änderungen bei Textrichtung rtl

Bei einer Textrichtung rtl müsste man bei dem Beispiel die Klassen links und rechts wie folgt ändern.

.links { 
width: 150px;
margin-left: 0;
margin-right: auto;
border: 1px solid black;
}

.rechts { 
width: 150px;
border: 1px solid black;
}

Die übrigen Einstellungen würden so bleiben und die Positionen der Block-Elemente sind mit den Änderungen bei rtl wie bei der Textrichtung ltr. Die Texte werden jedoch an den rechten Rändern des jeweiligen Block-Elements ausgerichtet, da die Textrichtung von rechts nach links ist. Die Rahmen dienen nur zur besseren Sichtbarkeit der Elemente.