Chris Coyier hat kürzlich einen Entscheidungsbaum auf seiner Site, CSS Tricks, veröffentlicht, um eine Fülle von Möglichkeiten zu zeigen, wie man Dinge mithilfe von CSS horizontal oder vertikal zentrieren kann. Als Standalone-Lösungen haben sie alle ihre Vorbehalte, aber in Kombination sind sie ein unaufhaltsames Zentrierwerkzeug, das Browserübergreifend in IE8 und darüber arbeitet.
Das ist wie man es macht.
Hinweis: Um alle Grundlagen abzudecken, habe ich die Erklärung in Video und in schriftlicher Form bereitgestellt.
Laden Sie ein Video herunter oder abonnieren Sie Tuts + Web Design auf Youtube
Wenn Sie eine responsive Website erstellen, werden Sie Ihre Elemente höchstwahrscheinlich mit Prozentsätzen in der Größe anpassen. Nehmen Sie also eine beliebige Größe vor .Container
Element:
…
.Behälter Breite: 70%; Höhe: 70%; Marge: 40px auto; Hintergrund: rot;
Um sicherzugehen, dass sich unser enthaltendes Element entsprechend erstreckt, lassen Sie uns festlegen HTML, Körper Breite: 100%; Höhe: 100%;
.
Jetzt drin .Container
, Wir werden eine vertikale Zentrierung mit dem üblichen Tischmuster erhalten. Dies nimmt normale Blockebenenelemente ein und bewirkt, dass sie sich wie Tabellenzellen verhalten, was uns vertikal zentriert:
…
.äußere Anzeige: Tabelle; Breite: 100%; Höhe: 100%; .inner display: table-cell; vertikal ausrichten: Mitte; Text ausrichten: Mitte;
Zum Schluss fügen wir ein horizontal zentriertes Element hinzu:
…
.zentriert position: relativ; Anzeige: Inline-Block; Breite: 50%; Polsterung: 1em; Hintergrund: Orange; Farbe weiß;
Darin können Sie alles platzieren, was Ihr Herz begehrt, einschließlich Textblöcke mit dynamischer Höhe oder absolut positionierte Elemente.
Demo auf GitHub
Ändern Sie einfach die horizontale Zentrierung des Elements .innere
's Textausrichtung
Eigentum. Ändern Sie die vertikale Zentrierung .innere
's vertikal ausrichten
Eigentum.
Dieses Beispiel mag wie viel Markup erscheinen, aber die Arbeitstücke sind nur drei div
s: .äußere
, .innere
, und.zentriert
. Das Styling für diese Objekte ist konsistent, sodass Sie dieses in Ihrem Boilerplate-CSS projektübergreifend verwenden können und sich nie wieder darum kümmern müssen.
Es ist um ein Element größer als die meisten Zentriertechniken und absolut kugelsicher. Ich hoffe, dass dies zum Standardansatz wird, und wir können endlich aufhören, sich Sorgen um die Zentrierung in CSS zu machen.