Anda dapat mengganti align-items
dengan align-self
untuk item fleksibel. Saya mencari cara untuk mengganti justify-content
item fleksibel.
Jika Anda memiliki wadah flexbox justify-content:flex-end
, tetapi Anda menginginkan item pertama justify-content: flex-start
, bagaimana bisa dilakukan?
Ini paling baik dijawab oleh posting ini: https://stackoverflow.com/a/33856609/269396
auto
margin. Lihat kotak # 26 di sini: stackoverflow.com/a/33856609/3597276Jawaban:
Sepertinya tidak ada
justify-self
, tetapi Anda dapat mencapai pengaturan hasil serupa yang sesuaimargin
denganauto
¹. E. g. untukflex-direction: row
(default) Anda harus mengaturmargin-right: auto
untuk menyelaraskan anak ke kiri.¹ Perilaku ini ditentukan oleh spesifikasi Flexbox .
sumber
justify-self
mungkin tidak ada hubungannya denganflexbox
tetapi digunakan dengancss grids
tetapi saya tidak yakin. Sepertinya saya tidak bisa menjalankannya di Chrome dengan flexbox.AFAIK tidak ada properti untuk itu dalam spesifikasi, tapi di sini adalah trik yang saya gunakan: mengatur elemen wadah (yang dengan
display:flex
) untukjustify-content:space-around
Kemudian menambahkan elemen tambahan antara item pertama dan kedua dan mengaturnya keflex-grow:10
(atau beberapa nilai lain yang bekerja dengan pengaturan Anda)Sunting: jika item-itemnya benar-benar sejajar, sebaiknya tambahkan
flex-shrink: 10;
elemen tambahan juga, sehingga tata letak akan responsif dengan benar pada perangkat yang lebih kecil.sumber
min-width: 0
Jika Anda tidak benar-benar dibatasi untuk menjaga semua elemen ini sebagai saudara kandung node Anda dapat membungkus orang-orang yang pergi bersama-sama di kotak flex default lain, dan memiliki wadah keduanya menggunakan ruang-antara.
Atau jika Anda melakukan hal yang sama dengan flex-start dan flex-end terbalik Anda hanya menukar urutan wadah default-flex dan anak tunggal.
sumber
Sepertinya
justify-self
akan segera datang ke browser . Sudah ada artikel di MDN . Pada saat penulisan ini, dukungan browser buruk.Mengenai solusi margin: Saya memiliki kisi Flexbox dengan celah. Tidak ada
flex-gap
properti (belum?) Dengan Flexbox. Jadi untuk talang, saya menggunakan bantalan dan margin, jadimargin: auto
perlu menimpa margin lainnya ...sumber
In flexbox layouts, this property is ignored
justify-self
tidak bekerja dalamdisplay: grid
wadah. Baru-baru ini seperti flexbox, jadi memungkinkan pemosisian yang kaya sepertialign-items
,,align-self
serta beberapa fitur tambahan seperti yang kami butuhkan di sinijustify-self
,. Apa yang saya rekomendasikan adalah menggunakan flexbox di mana pun mencukupi, tetapi jika tidak ada sesuatu, kemungkinan besar grid memiliki apa yang Anda cari. (mis. menyelaraskan satu anak dengan center-x dan centre-y, dan yang lain ke kanan-x centre-y - flexboxmargin-left: auto
mudah untuk kiri + kanan, tetapi tidak di tengah + kanan) Contoh: stackoverflow.com/a/57128453 / 2441655Untuk situasi di mana lebar item yang ingin Anda
flex-end
ketahui, Anda dapat mengatur kelenturannya menjadi "0 0 ## px" dan mengatur item yang Anda inginkanflex-start
denganflex:1
Ini akan menyebabkan
flex-start
item semu mengisi wadah, cukup format ketext-align:left
atau apa pun.sumber
Saya memecahkan kasus serupa dengan mengatur gaya item dalam ke
margin: 0 auto
.Situasi: Menu saya biasanya berisi tiga tombol, dalam hal ini mereka perlu
justify-content: space-between
. Tetapi ketika hanya ada satu tombol, sekarang akan di tengahkan alih-alih ke kiri.sumber