https://jsfiddle.net/vhem8scs/
Apakah mungkin untuk memiliki dua item sejajar kiri dan satu item lurus kanan dengan flexbox? Tautan menunjukkannya dengan lebih jelas. Contoh terakhir adalah apa yang ingin saya capai.
Di flexbox saya punya satu blok kode. Dengan float, saya memiliki empat blok kode. Itulah salah satu alasan mengapa saya lebih suka flexbox.
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;
}
Jawaban:
Untuk menyelaraskan satu anak flex ke kanan atur dengan
margin-left: auto;
Dari spec fleksibel :
Biola diperbarui
Tampilkan cuplikan kode
catatan:
Anda dapat mencapai efek yang sama dengan mengatur pertumbuhan fleksibel: 1 pada item flex tengah (atau steno
flex:1
) yang akan mendorong item terakhir sampai ke kanan. ( Demo )Namun perbedaan yang jelas adalah bahwa item tengah menjadi lebih besar dari yang seharusnya. Tambahkan perbatasan ke item fleksibel untuk melihat perbedaannya.
Demo
Tampilkan cuplikan kode
sumber
auto
margin menggunakan ruang kosong dalam wadah untuk memisahkan item fleksibel. Theflex-grow
/flex
properti membutuhkan ruang yang kosong, memberikan ke item flex, yang mengembang dengan jumlah tersebut. Seperti yang disebutkan oleh Danield, metode terakhir membuat item fleksibel DUA lebih besar, yang mungkin tidak Anda inginkan.div:nth-last-child(4) { margin-left: auto }
codepen.io/danield770/pen/ERyoarUntuk opsi kotak fleksibel murni, kelompokkan item rata kiri dan kanan kanan:
dan gunakan
space-between
:Dengan cara ini Anda dapat mengelompokkan beberapa item ke kanan (atau hanya satu).
https://jsfiddle.net/c9mkewwv/3/
sumber
display: inline;
ataudisplay: inline-block;
, maka mereka akan ditumpuk alih-alih semua dalam satu baris seperti flexbox jika tidak akan memilikinya.One
danTwo
daridiv
s kespan
s - jika masihdisplay: block;
maka mereka akan mengalir ke baris yang terpisah. Karena OP awalnya memilikidiv
s, saya hanya ingin menunjukkan bahwa hanya menempatkannya di dalam yang laindiv
tidak akan berfungsi tanpa mengubah tampilan tag asli.display: flex
tidak lagi mempengaruhi tata letak mereka. Jika Anda ingin menggunakan div, ya,inline
atauinline-block
akan berhasil. Tetapi juga, jelas,flex
karena kita menggunakannya untuk defaultflex-direction: row
dengan div induk sudah. ex. jsfiddle.net/ynbb5964/2Untuk menyelaraskan beberapa elemen (headerElement) di tengah dan elemen terakhir ke kanan (headerEnd).
sumber