Um ein Blockelement (wie <div>) horizontal zu zentrieren, verwenden Sie margin: auto;
Durch Einstellen der Breite des Elements wird verhindert, dass es sich bis zum Rand ausdehnt Kanten seines Behälters.
Das Element nimmt dann die angegebene Breite und den verbleibenden Platz ein wird zu gleichen Teilen auf die beiden Ränder aufgeteilt:
This div element is centered.
.center
{
margin: auto;
width: 50%;
border: 3px solid green;
padding: 10px;
}
Probieren Sie es selbst aus →
<!DOCTYPE html>
<html>
<head>
<style>
.center {
margin: auto;
width: 60%;
border: 3px solid #73AD21;
padding: 10px;
}
</style>
</head>
<body>
<h2>Center Align Elements</h2>
<p>To horizontally center a block element (like div), use margin: auto;</p>
<div class="center">
<p>Hello World!</p>
</div>
</body>
</html>
Hinweis: Die zentrierte Ausrichtung hat keine Auswirkung, wenn die Eigenschaft width
nicht festgelegt ist (oder auf 100 % setzen).
Um den Text innerhalb eines Elements einfach zu zentrieren, verwenden Sie text-align: center;
This text is centered.
.center {
text-align: center;
border: 3px solid green;
}
Probieren Sie es selbst aus →
<!DOCTYPE html>
<html>
<head>
<style>
.center {
text-align: center;
border: 3px solid green;
}
</style>
</head>
<body>
<h2>Center Text</h2>
<div class="center">
<p>This text is centered.</p>
</div>
</body>
</html>
Tipp: Weitere Beispiele zum Ausrichten von Text finden Sie im Kapitel „CSS-Text“.
Um ein Bild zu zentrieren, stellen Sie den linken und rechten Rand auf auto
ein und machen Sie daraus ein Block
-Element:
img
{
display: block;
margin-left: auto;
margin-right: auto;
width: 40%;
}
Probieren Sie es selbst aus →
<!DOCTYPE html>
<html>
<head>
<style>
img {
display: block;
margin-left: auto;
margin-right: auto;
}
</style>
</head>
<body>
<h2>Center an Image</h2>
<p>To center an image, set left and right margin to auto, and make it into a block element.</p>
<img src="paris.jpg" alt="Paris" style="width:40%">
</body>
</html>
Eine Methode zum Ausrichten von Elementen ist die Verwendung von position: absolute;
:
In my younger and more vulnerable years my father gave me some advice that I've been turning over in my mind ever since.
.right
{
position: absolute;
right: 0px;
width: 300px;
border: 3px solid #73AD21;
padding: 10px;
}
Probieren Sie es selbst aus →
<!DOCTYPE html>
<html>
<head>
<style>
.right {
position: absolute;
right: 0px;
width: 300px;
border: 3px solid #73AD21;
padding: 10px;
}
</style>
</head>
<body>
<h2>Right align with the position property</h2>
<p>An example of how to right align elements with the position property:</p>
<div class="right">
<p>In my younger and more vulnerable years my father gave me some advice that I've been turning over in my mind ever since.</p>
</div>
</body>
</html>
Hinweis: Absolut positionierte Elemente werden aus dem normalen Fluss entfernt und können Elemente überlappen.
Eine andere Methode zum Ausrichten von Elementen ist die Verwendung der Eigenschaft float
:
.right
{
float: right;
width: 300px;
border: 3px solid #73AD21;
padding: 10px;
}
Probieren Sie es selbst aus →
<!DOCTYPE html>
<html>
<head>
<style>
.right {
float: right;
width: 300px;
border: 3px solid #73AD21;
padding: 10px;
}
</style>
</head>
<body>
<h2>Right align with the float property</h2>
<p>An example of how to right align elements with the float property:</p>
<div class="right">
<p>In my younger and more vulnerable years my father gave me some advice that I've been turning over in my mind ever since.</p>
</div>
</body>
</html>
Hinweis: Wenn ein Element höher ist als das Element, das es enthält, und es schwebend ist, wird es wird außerhalb seines Behälters überlaufen. Sie können den „Clearfix-Hack“ verwenden, um dies zu beheben (siehe Beispiel unten).
Dann können wir den Clearfix-Hack zum enthaltenden Element hinzufügen, um das Problem zu beheben dieses Problem:
.clearfix::after {
content: "";
clear: both;
display: table;
}
Probieren Sie es selbst aus →
<!DOCTYPE html>
<html>
<head>
<style>
div {
border: 3px solid #4CAF50;
padding: 5px;
}
.img1 {
float: right;
}
.img2 {
float: right;
}
.clearfix::after {
content: "";
clear: both;
display: table;
}
</style>
</head>
<body>
<h2>Without Clearfix</h2>
<p>This image is floated to the right. It is also taller than the element containing it, so it overflows outside of its container:</p>
<div>
<img class="img1" src="pineapple.jpg" alt="Pineapple" width="170" height="170">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus imperdiet...
</div>
<h2 style="clear:right">With New Modern Clearfix</h2>
<p>Add the clearfix hack to the containing element, to fix this problem:</p>
<div class="clearfix">
<img class="img2" src="pineapple.jpg" alt="Pineapple" width="170" height="170">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus imperdiet...
</div>
</body>
</html>
Es gibt viele Möglichkeiten, ein Element in CSS vertikal zu zentrieren. Eine einfache Lösung besteht darin, oben und unten Padding
zu verwenden:
I am vertically centered.
.center {
padding: 70px 0;
border: 3px solid
green;
}
Probieren Sie es selbst aus →
<!DOCTYPE html>
<html>
<head>
<style>
.center {
padding: 70px 0;
border: 3px solid green;
}
</style>
</head>
<body>
<h2>Center vertically with padding</h2>
<p>In this example, we use the padding property to center the div element vertically:</p>
<div class="center">
<p>I am vertically centered.</p>
</div>
</body>
</html>
Um sowohl vertikal als auch horizontal zu zentrieren, verwenden Sie padding
und text-align: center
:
I am vertically and horizontally centered.
.center {
padding: 70px 0;
border: 3px solid
green;
text-align: center;
}
Probieren Sie es selbst aus →
<!DOCTYPE html>
<html>
<head>
<style>
.center {
padding: 70px 0;
border: 3px solid green;
text-align: center;
}
</style>
</head>
<body>
<h2>Center with padding and text-align</h2>
<p>In this example, we use padding and text-align to center the div element both vertically and horizontally:</p>
<div class="center">
<p>I am vertically and horizontally centered.</p>
</div>
</body>
</html>
Ein weiterer Trick besteht darin, die Eigenschaft line-height
mit einem gleichen Wert zu verwenden zur Eigenschaft height
:
I am vertically and horizontally centered.
.center {
line-height: 200px;
height: 200px;
border: 3px solid green;
text-align: center;
}
/* If the text has multiple lines, add the
following: */
.center p {
line-height: 1.5;
display: inline-block;
vertical-align: middle;
}
Probieren Sie es selbst aus →
<!DOCTYPE html>
<html>
<head>
<style>
.center {
line-height: 200px;
height: 200px;
border: 3px solid green;
text-align: center;
}
.center p {
line-height: 1.5;
display: inline-block;
vertical-align: middle;
}
</style>
</head>
<body>
<h2>Center with line-height</h2>
<p>In this example, we use the line-height property with a value that is equal to the height property to center the div element:</p>
<div class="center">
<p>I am vertically and horizontally centered.</p>
</div>
</body>
</html>
Wenn padding
und line-height
keine Optionen sind, eine andere Lösung ist die Verwendung der Positionierung und der Eigenschaft transform
:
I am vertically and horizontally centered.
.center {
height: 200px;
position: relative;
border: 3px solid green;
}
.center p {
margin: 0;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
Probieren Sie es selbst aus →
<!DOCTYPE html>
<html>
<head>
<style>
.center {
height: 200px;
position: relative;
border: 3px solid green;
}
.center p {
margin: 0;
position: absolute;
top: 50%;
left: 50%;
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
</style>
</head>
<body>
<h2>Center with position and transform</h2>
<p>In this example, we use positioning and the transform property to vertically and horizontally center the div element:</p>
<div class="center">
<p>I am vertically and horizontally centered.</p>
</div>
</body>
</html>
Tipp: Weitere Informationen zur Transformationseigenschaft finden Sie in unseren 2D-Transformationen Kapitel.
Sie können Flexbox auch zum Zentrieren von Dingen verwenden. Beachten Sie nur, dass Flexbox in IE10 und früheren Versionen nicht unterstützt wird:
.center {
display: flex;
justify-content: center;
align-items: center;
height: 200px;
border: 3px solid
green;
}
Probieren Sie es selbst aus →
<!DOCTYPE html>
<html>
<head>
<style>
.center {
display: flex;
justify-content: center;
align-items: center;
height: 200px;
border: 3px solid green;
}
</style>
</head>
<body>
<h2>Flexbox Centering</h2>
<p>A container with both the justify-content and the align-items properties set to <em>center</em> will align the item(s) in the center (in both axis).</p>
<div class="center">
<p>I am vertically and horizontally centered.</p>
</div>
</body>
</html>
Tipp: Mehr über Flexbox erfahren Sie in unserem CSS-Flexbox-Kapitel.