2017-08-08 2 views
0

Wie kann ich den Boxen, die ich habe, den gleichen Abstand geben, anstatt sie alle zusammen mit so viel Platz auf der rechten Seite zu haben?Fallback für Display Flex

Normalerweise verwende ich Display-Flex, weil es das ganz einfach macht, aber da nicht alle Browser Flex-Eigenschaften unterstützen, versuche ich es anders herum.

Unten ist mein Code und ich hoffe, Sie können helfen.

.main > div{ 
 
    float: left; 
 
    height: 100px; 
 
    width: 200px; 
 
} 
 
.yellow{ 
 
    background: yellow; 
 
} 
 
.red{ 
 
    background: red; 
 
} 
 
.green{ 
 
    background: green; 
 
} 
 
.black{ 
 
    background: black; 
 
}
<div class="main"> 
 
    <div class="red"> 
 
    
 
    </div> 
 
    <div class="green"> 
 
    
 
    </div> 
 
    
 
    <div class="yellow"> 
 
    
 
    </div> 
 
    
 
    <div class="black"> 
 
    
 
    </div> 
 
</div>

+1

Je nachdem, was Ihr Gebäude, Unterstützung und Zielgruppe ist, Unterstützung fot Flexbox ist ziemlich gut: http://caniuse.com/#feat=flexbox. Gibt es irgendwelche Probleme mit Flexbox und bestimmten Plattformen? –

+0

+1 was ist deine Unterstützung: IE10 + und Android4.4 +? Fein, Browserslist + Autoprefixer und dein Job ist fertig! :) Ansonsten füge bitte deine Original Cases hinzu (mit '@supports (display: flex)' vielleicht) damit wir dir besser antworten können. Multiline Flex hat nicht die gleichen Fallbacks wie Monoline zum Beispiel – FelipeAls

Antwort

1

Sie können versuchen, dies

.main { 
 
    text-align: justify; 
 
} 
 

 
.main:after { 
 
    content: ''; 
 
    display: inline-block; 
 
    width: 100%; 
 
} 
 

 
div>div { 
 
    display: inline-block; 
 
    /* height, width and border for demo purpose only */ 
 
    height: 50px; 
 
    width: 100px; 
 
    border: thin solid darkgray; 
 
} 
 

 

 
/* for browsers that support flex */ 
 

 
@supports (display:flex) { 
 
    .main { 
 
    width: 100%; 
 
    display: flex; 
 
    justify-content: space-between; 
 
    } 
 
    .main:after { 
 
    display: none; 
 
    } 
 
}
<div class="main"> 
 
    <div class="red"></div> 
 
    <div class="green"></div> 
 
    <div class="yellow"></div> 
 
    <div class="black"></div> 
 
</div>

+0

Beachten Sie, dass "unterstützt" nicht von IE unterstützt wird, obwohl IE10 + Flexbox unterstützt. –

0

Wenn Sie wissen, wie viele Blöcke Sie haben Sie Prozentsätze verwenden:

.main > div { 
    width: 25%; 
} 

Ansonsten könnten Sie eine Tabelle verwenden:

<table style="width:100%"> 
    <tr> 
    <td style="background:red;"></td> 
    <td style="background:green;"></td> 
    <td style="background:black;"></td> 
    <td style="background:blue;"></td> 
    </tr> 
</table>