2015-04-21 13 views
7

questo modo più semplice che ho trovato per spiegare questo è semplicemente quello di mostrare la bandiera del Benin:CSS per una colonna, due righe con fratelli con FlexBox

enter image description here

Mi piacerebbe fare qualcosa di simile con flexbox in CSS, ma finora sono stato sconcertato.

La chiave è che ho bisogno di ciascuna delle tre regioni di essere fratelli, qualcosa di simile:

<div class=flag> 
    <div class=green></div> 
    <div class=yellow></div> 
    <div class=red></div> 
</div> 
.flag { 
    display:flex; 
    flex-direction: row; 
} 

/* below this I'm not sure */ 
.green { 

} 

.red, .yellow { 

} 

Questo è possibile senza l'aggiunta di un nodo intermediario per contenere .red e .yellow? È facile a quel punto, ma mi piacerebbe sapere se è possibile fare ciò che descrivo sopra.

+0

Vedi se questo ti aiuta: https://css-tricks.com/snippets/css/a-guide-to-flexbox/ –

+0

Domanda stupida , ma stai cercando di ottenere il blocco delle flexbox o stai cercando di disegnare la bandiera del Benin? –

+0

Cercando di conoscere Flexbox. Le mie capacità di disegno non sono immense, ma penso che anche io potrei realizzare questa opera d'arte :) – pat

risposta

10

È possibile utilizzare le colonne di avvolgimento per ottenere la vostra Benin Bandiera:

La prima colonna (a sinistra) è .green a height:100% rispetto al contenitore .flag.

La seconda colonna (a destra) è .yellow, .red a height:50% rispetto al .flag

E la .green è allocato width:40% rispetto al .flag

Buona fortuna con il vostro progetto!

enter image description here

.flag{ 
 
    position:relative; 
 
    display:flex; 
 
    flex-flow:column wrap; 
 
    width:200px; 
 
    height:150px; 
 
    border:2px solid black; 
 
} 
 

 
.green{background:green;} 
 
.yellow{background:yellow;} 
 
.red{background:red;} 
 

 
.col1{width:40%;height:100%;} 
 
.col2{width:60%;height:50%;}
<div class=flag> 
 
    <div class='col1 green'></div> 
 
    <div class='col2 yellow'></div> 
 
    <div class='col2 red'></div> 
 
</div>

+2

In qualche modo ero arrivato sotto l'illusione che i contenitori 'display: flex' avessero avuto un effetto solo se erano genitori di bambini con uno dei' flex- * 'regole impostate. Ma vedo dal tuo esempio che 'display: flex' influisce anche sul modo in cui gli elementi figlio si comportano l'uno rispetto all'altro, purché abbiano impostato delle dimensioni di qualche tipo. Grazie! – pat

+1

Nessuna guida flexbox che ho trovato su internet spiega questo layout semplice, fantastico! – jpoppe

+2

Questo è fantastico. Qualcuno sa come creare questo layout esatto senza impostare l'altezza del genitore? –

Problemi correlati