CSS-Flex Box: Wie vertikal ausrichten "flex-items" Mitte-ohne flex-Element Höhe?
Derzeit meine "flex" - Elemente wie folgt Aussehen (vertikale Ausrichtung: top)...
_____________________________________
1
_____________________________________
2
_____________________________________
3
_____________________________________
4
_____________________________________
Mein Ziel ist, dass Sie Aussehen wie diese (vertikale Ausrichtung: Mitte)...
_____________________________________
1
_____________________________________
2
_____________________________________
3
_____________________________________
4
_____________________________________
Meine Anforderungen:
- Die flex-container bleiben muss, bei 100% in der Höhe
- Die flex-items bleiben müssen 25% in der Höhe (entspricht 100%, das ist die Standard-sowieso).
- Die flex-Elemente müssen vertikal zentriert werden.
- Diese müssen schnell und intelligent genug, um in der Mitte zu bleiben, - pro Gerät (also kein line-height/padding)
http://jsfiddle.net/oneeezy/p4XtA/
HTML
<!-- Flex Box -->
<section>
<!-- Flex Items -->
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</section>
CSS
/* Flex Box */
section { padding: 1em; background: black; display: flex; flex-flow: column; height: 100%; justify-content: space-around; }
/* Flex Items */
div { border-top: 1px solid #ccc; background: #f2f2f2; height: 25%; }
div:first-child { border-top: 1px solid transparent; }
div:hover { background: white; }
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vielleicht bin ich Missverständnis, aber kann Sie gerade nicht tun:
HTML (Slim)
CSS
Hier ein Codepen
Vertikalen ausrichten Inhalte der flexbox Kind, müssen Sie einige andere Techniken.
Ich glaube, es wird Inhalt , verpackt in den tag, können Sie dann wieder verwenden
flex
und untergeordnete inmargin:auto;
DEMO
CSS-aktualisiert :
HTML-Struktur :
Vielleicht ein fallback mit
display:table
, kann nützlich sein : DEMO 2Dein problem ist nicht wirklich im Zusammenhang mit der so genannten flex-box, in der Tat, was Sie ausrichten möchten, ist die Inhalt des div - (nicht die
div
), so dass nur einige trick auszurichten normarlly. Hier ist einer der tricks:Demo.
Dies ist die Flex-Weg von der Lösung Ihres Problems:
HTML
CSS