CSS ein Element mit Flexbox rechts ausrichten
https://jsfiddle.net/vhem8scs/
Ist es möglich, mit Flexbox zwei Elemente links und ein Element rechts auszurichten? Der Link zeigt es deutlicher. Das letzte Beispiel ist das, was ich erreichen möchte.
Bei flexbox habe ich einen Code-Block. Mit float habe ich vier Codeblöcke. Das ist ein Grund, warum ich flexbox bevorzuge.
HTML
<div class="wrap">
<div>One</div>
<div>Two</div>
<div>Three</div>
</div>
<!-- DESIRED RESULT -->
<div class="result">
<div>One</div>
<div>Two</div>
<div>Three</div>
</div>
CSS
.wrap {
display: flex;
background: #ccc;
width: 100%;
justify-content: space-between;
}
.result {
background: #ccc;
margin-top: 20px;
}
.result:after {
content: '';
display: table;
clear: both;
}
.result div {
float: left;
}
.result div:last-child {
float: right;
}
170
3
Um ein Flex Child nach rechts auszurichten, setzen Sie es mit
margin-left: auto;
Aus der flex spec:
[Updated fiddle][2]
Anmerkung:
Sie könnten einen ähnlichen Effekt erzielen, indem Sie flex-grow:1 auf das mittlere flex-Element setzen (oder die Abkürzung
flex:1
), was das letzte Element ganz nach rechts schieben würde. ([Demo][3])Der offensichtliche Unterschied ist jedoch, dass das mittlere Element größer wird, als es eigentlich sein müsste. Fügen Sie einen Rahmen zu den flexiblen Elementen hinzu, um den Unterschied zu sehen.
[Demo][4]
Für eine knappe, reine Flexbox-Option gruppieren Sie die links ausgerichteten Elemente und die rechts ausgerichteten Elemente:
und verwenden Sie
space-between
:Auf diese Weise können Sie mehrere Elemente rechts gruppieren (oder nur eines).
https://jsfiddle.net/c9mkewwv/3/
Um einige Elemente (headerElement) in der Mitte und das letzte Element rechts (headerEnd) auszurichten.