Gibt es in CSS 3 eine Möglichkeit, ein Blockelement vertikal auszurichten? Hast du ein beispiel Vielen Dank.
74
Gibt es in CSS 3 eine Möglichkeit, ein Blockelement vertikal auszurichten? Hast du ein beispiel Vielen Dank.
Antworten:
Ich habe mir dieses Problem kürzlich angesehen und versucht:
HTML:
<body> <div id="my-div"></div> </body>
CSS:
#my-div { position: absolute; height: 100px; width: 100px; left: 50%; top: 50%; background: red; transform: translate(-50%, -50%); -webkit-transform: translate(-50%, -50%); -moz-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); }
Hier ist die Geige:
http://jsfiddle.net/sTcp9/6/
Es funktioniert sogar, wenn "width / height: auto" anstelle von festen Abmessungen verwendet wird. Getestet mit den neuesten Versionen von Firefox, Chrome und IE (* keuch *).
quelle
transform-style: preserve-3d;
, dem übergeordneten Element (Quelle: zerosixthree.se/… ) etwas hinzuzufügen , um unscharfe Ergebnisse aufgrund des Problems "halbes Pixel" zu vermeiden .Hinweis: In diesem Beispiel wird die Entwurfsversion des Flexible Box Layout Module verwendet . Es wurde durch die inkompatible moderne Spezifikation ersetzt.
Zentrieren Sie die untergeordneten Elemente einer div-Box, indem Sie die Eigenschaften box-align und box-pack zusammen verwenden.
Beispiel:
div { width:350px; height:100px; border:1px solid black; /* Internet Explorer 10 */ display:-ms-flexbox; -ms-flex-pack:center; -ms-flex-align:center; /* Firefox */ display:-moz-box; -moz-box-pack:center; -moz-box-align:center; /* Safari, Opera, and Chrome */ display:-webkit-box; -webkit-box-pack:center; -webkit-box-align:center; /* W3C */ display:box; box-pack:center; box-align:center; }
quelle
Verwenden der Flexbox:
<style> .container { display: flex; align-items: center; /* Vertical align */ justify-content: center; /* Horizontal align */ } </style> <div class="container"> <div class="block"></div> </div>
Zentriert
block
innencontainer
vertikal (und horizontal).Browserunterstützung: http://caniuse.com/flexbox
quelle
ein paar Möglichkeiten:
1. Absolute Positionierung - Sie benötigen eine deklarierte Höhe, damit dies funktioniert:
<div> <div class='center'>Hey</div> </div> div {height: 100%; width: 100%; position: relative} div.center { width: 100px; height: 100px; top: 50%; margin-top: -50px; }
* 2. Verwenden Sie display: table http://jsfiddle.net/B7CpL/2/ *
<div> <img src="/img.png" /> <div class="text">text centered with image</div> </div> div { display: table; vertical-align: middle } div img, div.text { display: table-cell; vertical-align: middle }
http://css-tricks.com/vertically-center-multi-lined-text/
quelle
Es gibt eine einfache Möglichkeit, ein Div in CSS vertikal und horizontal auszurichten.
Setzen Sie einfach eine Höhe auf Ihr div und wenden Sie diesen Stil an
.hv-center { margin: auto; position: absolute; top: 0; left: 0; bottom: 0; right: 0; }
Hoffe das hat geholfen.
quelle
position: relative
).Ich benutze immer das Tutorial aus diesem Artikel, um Dinge zu zentrieren. Es ist großartig
div.container3 { height: 10em; position: relative } /* 1 */ div.container3 p { margin: 0; position: absolute; /* 2 */ top: 50%; /* 3 */ transform: translate(0, -50%) } /* 4 */
Die wesentlichen Regeln sind:
quelle
Versuchen Sie dies auch perfekt zu funktionieren:
html:
<body> <div id="my-div"></div> </body>
CSS:
#my-div { position: absolute; height: 100px; width: 100px; left: 50%; top: 50%; background: red; display: table-cell; vertical-align: middle }
quelle
Sie können vertikal ausrichten, indem Sie ein anzuzeigendes Element festlegen: Inline-Block und dann vertikal ausrichten: Mitte;
quelle