Bättre sätt att ställa in avståndet mellan flexboxobjekt
För att ställa in det minsta avståndet mellan flexboxobjekt använder jag margin: 0 5px
på .item
och margin: 0 -5px
på container. För mig verkar det vara ett hack, men jag kan inte hitta något bättre sätt att göra detta.
[Exempel][1]
#box {
display: flex;
width: 100px;
margin: 0 -5px;
}
.item {
background: gray;
width: 50px;
height: 50px;
margin: 0 5px;
}
<div id='box'>
<div class='item'></div>
<div class='item'></div>
<div class='item'></div>
<div class='item'></div>
</div>
648
3
Därför är det lite svårare att uppnå det du ber om.
Enligt min erfarenhet är det "renaste" sättet som inte använder
:first-child
/:last-child
och som fungerar utan någon ändring avflex-wrap:wrap
att ställa inpadding:5px
på behållaren ochmargin:5px
på barnen. Det ger ett mellanrum på 10px mellan varje barn och mellan varje barn och dess förälder.[Demo] (http://jsfiddle.net/7XD8s/)
Du kan använda transparenta ramar.
Jag har funderat på den här frågan när jag försökte bygga en flex grid-modell som kan återgå till en tabell + tabellcellsmodell för äldre webbläsare. Och gränser för kolonnrännor verkade för mig vara det lämpligaste valet, eftersom tabellceller inte har marginaler.
t.ex.
Observera också att du behöver
min-width: 50px;
för flexbox. Flexmodellen kommer inte att hantera fasta storlekar om du inte görflex: none;
på det särskilda underelement som du vill ha som fast och därför uteslutet från att vara"flexi"
. http://jsfiddle.net/GLpUp/4/ Men alla kolumner tillsammans medflex:none;
är inte längre en flexmodell. Här är något som ligger närmare en flexmodell: http://jsfiddle.net/GLpUp/5/Så du kan faktiskt använda marginaler normalt om du inte behöver tabellcellsutfallet för äldre webbläsare. http://jsfiddle.net/GLpUp/3/
Det är nödvändigt att ställa in
background-clip: padding-box;
när du använder en bakgrund, eftersom bakgrunden annars kommer att flyta in i det genomskinliga gränsområdet.Jag tycker att det enklaste sättet att göra detta är att använda procentsatser och låta marginalen summera bredden.
Det betyder att du får något liknande om du använder ditt exempel.
Det betyder dock att dina värden baseras på bredden, vilket kanske inte är bra för alla.