2016-12-15 6 views
3

Es gibt ein CSS Flexbox Problem, das ich versuche zu lösen: richtige Ausrichtung der Boxen.CSS Flexbox rechts ausrichten resonsive

Also .. Ich habe 4 divs in Reihe. Zwei davon müssen links ausgerichtet werden und der Rest muss auf der rechten Seite sein. Ich weiß, wie man das macht und das ist kein Problem (margin-left: auto auf 3.).

Aber sie haben Eigenschaft flex-wrap: wrap, weil ich möchte, dass sie auf kleinen Bildschirmen wickeln. Ich möchte, dass das dritte und vierte Div auf jeder Bildschirmgröße auf der rechten Seite sind. Ich kann margin-left: auto auf 4. hinzufügen und es wird unerwünschter Platz zwischen 3. und 4. Div schaffen, aber es funktioniert für kleinen Bildschirm (3. und 4. bleibt auf der rechten Seite).

Ich will nicht Medienanfragen verwenden, da divs Breite dynamisch ...

Gibt es eine schöne Lösung für das? Ich möchte hier keine Flexbox geben!

Hier ist codepen: http://codepen.io/djkantoci/pen/XNxLVK

Rot mit margin-left: auto ist, blau ist ohne: Red is with margin-left: auto, blue is without

+0

Ich verstehe Sie nicht Mann .. LoL .. so wollten Sie 4 Tauchgänge, 1 und 2 nach links ausrichten und die anderen nach rechts ausrichten. und das Problem ist? Kannst du ein Bild setzen, was die Seite sein soll? Setze kein Bild, das ich in deinem Codepen sehen kann. – Obink

+0

Wie die Seite aussehen sollte, ist die erste große graue Box und die letzte graue Box auf diesem Bild hier. Das Problem ist auf der zweiten Box, wo Sie "NEIN" in der roten Box sehen können, und in der 3. Box (kleiner Bildschirm), wo Sie "NEIN" in der blauen Box sehen! Ich kann es mit einem echten Problembild nicht einfacher machen, es könnte noch verwirrender sein ... vertrau mir ... – Kantoci

Antwort

2

Hier hinzugefügt justify-content: flex-end und margin-right: auto Element .f2:

.flex { 
 
    align-items: center; 
 
    background: #ddd; 
 
    display: flex; 
 
    justify-content: flex-end; 
 
    flex-wrap: wrap; 
 
    margin-bottom: 20px; 
 
    padding: 5px; 
 
} 
 
.flex.small { 
 
    width: 500px; 
 
} 
 

 
.f { 
 
    background: #333; 
 
    color: #fff; 
 
    flex: 0 0 auto; 
 
    margin: 5px; 
 
    min-height: 40px; 
 
    padding: 30px 50px; 
 
    text-align: center 
 
} 
 
.f2 { 
 
    margin-right: auto 
 
} 
 
.f3 { 
 
    flex-basis: 300px; 
 
}
<div class="flex"> 
 
    <div class="f f1">1</div> 
 
    <div class="f f2">2</div> 
 
    <div class="f f3">3</div> 
 
    <div class="f f4">4</div> 
 
</div> 
 

 
<div class="flex small"> 
 
    <div class="f f1">1</div> 
 
    <div class="f f2">2</div> 
 
    <div class="f f3">3</div> 
 
    <div class="f f4">4</div> 
 
</div>

OK?

+0

TNX! Ich weiß nicht, warum ich nicht daran gedacht habe. Ich war zu sehr auf die rechte Seite konzentriert :) – Kantoci

+0

Willkommen! Es ist so üblich, in einem Attribut oder Wert zu bleiben :) –

+0

Ich fand das Problem auf der anderen Seite jetzt (Ich aktualisierte den Stift auf dem Codepen) ... Wenn der Bildschirm zu klein für die ersten zwei divs wird und sie zuerst einpacken man wird nach rechts ausgerichtet ... :(flexbox sollte eigentlich justify-self property haben ... – Kantoci