Ich möchte ein <div>
(oder ein <table>
) Element unabhängig von der Bildschirmgröße in der Mitte des Bildschirms positionieren . Mit anderen Worten, der Abstand zwischen "oben" und "unten" sollte gleich sein, und der Abstand zwischen "rechts" und "links" sollte gleich sein. Ich möchte dies nur mit CSS erreichen.
Ich habe Folgendes versucht, aber es funktioniert nicht:
<body>
<div style="top:0px; border:1px solid red;">
<table border="1" align="center">
<tr height="100%">
<td height="100%" width="100%" valign="middle" align="center">
We are launching soon!
</td>
</tr>
</table>
</div>
</body>
Hinweis:
Es ist in Ordnung, ob das <div>
Element (oder <table>
) mit der Website scrollt oder nicht. Ich möchte nur, dass es zentriert wird, wenn die Seite geladen wird.
javascript
css
html
sumit
quelle
quelle
Antworten:
Der einfache Weg, wenn Sie eine feste Breite und Höhe haben:
Bitte verwenden Sie keine Inline-Stile! Hier ist ein Arbeitsbeispiel http://jsfiddle.net/S5bKq/ .
quelle
Da Transformationen heutzutage allgegenwärtiger unterstützt werden, können Sie dies tun, ohne die Breite / Höhe des Popups zu kennen
Einfach! JSFiddle hier: http://jsfiddle.net/LgSZV/
Update: Check out https://css-tricks.com/centering-css-complete-guide/ für eine ziemlich umfassende Anleitung auf CSS Zentrierung. Fügen Sie es dieser Antwort hinzu, da es viele Augäpfel zu bekommen scheint.
quelle
overflow:auto
ist das Scrollen in IE9 fehlerhaft. :(Stellen Sie die Breite und Höhe ein und Sie sind gut.
Wenn Sie möchten, dass die Elementdimensionen flexibel sind (und sich nicht um ältere Browser kümmern), lesen Sie die Antwort von XwipeoutX .
quelle
Es funktioniert für jedes Objekt. Auch wenn Sie die Größe nicht kennen:
quelle
Mit HTML 5 und CSS 3 ist das jetzt einfacher:
quelle
Wenn Sie eine feste,
div
nur absolute Position haben, liegt diese bei 50% von oben und 50% links und am negativen Rand oben und links von der Hälfte der Höhe bzw. Breite. Passen Sie sich Ihren Bedürfnissen an:quelle
Verwenden Sie Flex . Viel einfacher und funktioniert unabhängig von Ihrer
div
Größe:quelle
Ich würde dies in CSS tun:
dann in HTML:
quelle
Versuche dies
Oder dieses
quelle
Wenn jemand nach einer Lösung sucht,
Ich habe das gefunden,
Es ist die beste Lösung, die ich bisher gefunden habe!
http://dabblet.com/gist/2872671
Ich hoffe dir gefällt es!
quelle
Ein weiterer einfacher, flexibler Ansatz zum Anzeigen des Blocks in der Mitte: Verwenden der nativen Textausrichtung mit
line-height
undtext-align
.Lösung:
Und HTML-Beispiel:
Wir machen
div.parent
Vollbild und sein einzelnes Kinddiv.child
richtet sich als Text ausdisplay: inline-block
.Vorteile:
Einfaches Beispiel für JSFiddle: https://jsfiddle.net/k9u6ma8g
quelle
Alternative Lösung, bei der keine absolute Position verwendet wird:
Ich sehe viele absolute Antworten auf die Position. Ich konnte Position absolut nicht verwenden, ohne etwas anderes zu brechen. Für diejenigen, die dies nicht konnten, habe ich
Folgendes getan: https://stackoverflow.com/a/58622840/6546317 (als Antwort auf eine andere Frage veröffentlicht).
Die Lösung konzentriert sich nur auf die vertikale Zentrierung, da meine untergeordneten Elemente bereits horizontal zentriert waren. Dies kann jedoch angewendet werden, wenn Sie sie nicht auf andere Weise horizontal zentrieren können.
quelle
Versuche dies:
quelle