Wundermittel für CSS

Teil 3: CSS: Profi-Tipps und Tricks - Negative Margins

Die umfassende Box wird gefloatet und erhält eine Hintergrundfarbe, die die Farbe für den Schlagschatten vorgibt.

.schatten {
float: left;
background-color: #264020;
}

Das innere Element wird über Margins verschoben: Entscheidend sind die negativen Werte für oben und links, die dafür sorgen, dass das innere Element sich aus der Box seines Elternelements herausschiebt.

.schatten p {
margin: -5px 5px 5px -5px;
position: relative;
padding: 5px;
width: 300px;
background-color: #D3E6CF;
}

Rechts und unten sieht man die Elternbox als schmalen 5px breiten Streifen, was die Illusion des Schlagschattens erzeugt.

Zentrieren

Bisher wurden negative Margins immer bei statischen, das heißt, nicht positionierten oder gefloateten Elementen eingesetzt. Bei positionierten Elementen dienen negative Margins zur Zentrierung. Eine Box mit einer festgelegten Breite soll horizontal und vertikal zentriert werden:

<div id="zentriert"></div>

Die Box wird absolut positioniert und mit left: 50% und top: 50% die Position bestimmt.

#zentriert {
width: 500px;
height: 300px;
background-color:
#9BCC8F;
position: absolute;
top: 50%;
left: 50%;
}

Damit befindet sich die linke obere Ecke der Box immer im Mittelpunkt des Browserfensters. Bei einer zentrierten Box muss jedoch der Mittelpunkt genau in der Mitte des Browserfensters liegen.

CSS: Profi-Tipps&Tricks

© Archiv

Immer zentriert - über absolute Positionierung und negative Margins.

Hierfür muss man die Box um die Hälfte ihrer Breite nach links schieben und um die Hälfte ihrer Höhe nach oben. Genau dafür kommen wieder negative Margins zum Einsatz. Die CSS-Angaben sehen also folgendermaßen aus:

#zentrum {
width: 500px;
height: 300px;
background-color: #9BCC8F;
position: absolute;
top: 50%;
left: 50%;
margin-left: -250px; /* Hälfte
der Breite */
margin-top: -150px; /* Hälfte
der Höhe */
}

Einen Nachteil hat diese Lösung: Wird das Browserfenster kleiner als die Box breit ist, verschwinden Inhalte nach links oben und sind auch über Scrollleisten nicht erreichbar. Verhindern lässt sich dies über die Vergabe einer Mindestbreite und einer Mindesthöhe. Dafür setzt man zuerst die Höhe von body und html auf 100% und entfernt die Abstände:

html, body {
height: 100%;
margin: 0;
padding: 0;
}

Mehr zum Thema

HTML5: Quick Reference Guide
Ratgeber: "HTML5"

Die wichtigsten Tags auf einen Blick: In unserem praktischen Arbeitsblatt finden Sie einen wertvollen Begleiter für die Umstellung Ihrer Webprojekte…
internet, webdesign, google, content, ranking, seo, suchmaschine
Ratgeber: Urheberrecht

Einzigartige Inhalte bieten Lesern Mehrwert und sind ein wichtiges Qualitätsmerkmal. Ärgerlich, wenn sich jemand durch Kopieren an fremden Ergebnissen…
Die besten HTML5-Tipps
Neue Tipps & Tricks für blitz.io

Wer die Leistung einer Applikation ermitteln möchte, braucht keine Skripte zu schreiben, sondern kann einen der zahlreichen Online-Dienste einspannen.…
image.jpg
Ratgeber: Webentwicklung

Die clientseitige Javascript-Entwicklung bietet fast keine Entwicklungsumgebungen und auch keine vernünftigen Werkzeuge zur Fehlersuche. Eine der…
internet, webdesign, meteor, webapplikationen
Ratgeber

Mit Meteor sollen Entwickler in kurzer Zeit Umgebungen für Webapplikationen erstellen können, ohne sich um lästige Details kümmern zu müssen. Wir…