Kecilkan bekas agar sesuai dengan elemen kanak-kanak yang dibalut
P粉182218860
P粉182218860 2023-10-21 10:33:50
0
2
499

Saya cuba memikirkan bagaimana flexbox berfungsi (sepatutnya berfungsi?...) untuk situasi seperti ini:

.holder { width: 500px; background: lightgray; display: flex; flex-direction: row; justify-content: space-between; flex-wrap: nowrap; } .v2 { width: 320px; } .child { display: inline-block; border: 1px solid black; padding: 30px 0px; text-align: center; }
At a glance
After coverage ends
Forms & documents


At a glance
After coverage ends
Forms & documents


At a
glance
After coverage
ends
Forms &
documents

Ini adalah JSFiddle

Masalahnya ialah apabila terdapat ruang yang cukup untuk memegang elemen, saya mendapat anak ketat yang bagus dengan jarak yang sekata antara kanak-kanak. (pertama, blok div atas)

Namun, apabila ruang kanak-kanak tidak mencukupi dan teks mula dibalut, semuanya pergi ke arah yang pelik - kanak-kanak tidak lagi muat dengan selesa, dan walaupun selepas membungkus, masih terdapat ruang yang cukup di sekeliling kanak-kanak flex kerana Adakah' tidak sesuai lagi dan ruang sekeliling tidak berpeluang untuk berfungsi (blok div kedua)

Walau bagaimanapun, jika saya menambah pemutus talian manual di mana pemutus talian automatik berlaku, semuanya disusun dengan cara yang "sepatutnya"... (blok bawah, ketiga)

Apa yang saya mahukan ialah sentiasa meletakkan anak-anak di dalam kotak mereka (sempadan hitam) dan apa sahaja ruang yang tinggal akan diagihkan sama rata di antara mereka tanpa saya menambah pemutus talian manual (ini bukan pilihan) setakat yang saya bimbangkan)

Adakah ini mungkin? ...

P粉182218860
P粉182218860

membalas semua (2)
P粉930534280

Lihat lebih dekat perubahan sayaFiddle:

  • .holderwidthmax-width(在.vkategori)
  • Diubah suai.holderwrapspace-aroundanak-anaknya
  • Tambah 2 lagi.vkelas
  • untuk kejelasan
  • Dipadamkan
  • Dan,paling penting, tambahkanflex: 0 0padaflex: 0 0添加到.child.child

Flexbox hampir selalu perlu disediakanmax-width,这比widthuntuk menjadi lebih fleksibel. Hasilnya kelihatan baik bergantung pada apa yang anda perlukan.children 的行为方式,修改flex: 0 0 中的flex-growflex-shrink来满足您的需求。 (flex: 1 0)

...Tiada JavaScript diperlukan...

Codrops Flexbox Referencesangat berguna untuk memahami susun atur flexbox.

    P粉447002127

    Dalam CSS, bekas induk tidak tahu bila bekas anaknya membungkus. Jadi ia terus mengembangkan saiznya, mengabaikan apa yang berlaku secara dalaman.

    Dalam erti kata lain, penyemak imbas memaparkan bekas pada lata awal. Ia tidak mengalir semula dokumen apabila kanak-kanak membungkus.

    Inilah sebabnya bekas tidak mengecut membalut reka letak yang lebih sempit. Ia hanya berjalan seolah-olah tiada apa yang dibalut, seperti yang dibuktikan oleh ruang yang dikhaskan di sebelah kanan.

    Panjang maksimum ruang putih mendatar ialah panjang elemen yang dijangka hadir oleh bekas.

    Dalam demo di bawah, anda boleh melihat ruang putih keluar dan masuk apabila tetingkap diubah saiz secara mendatar:DEMO 强>

    Anda memerlukan penyelesaian JavaScript (lihatdi sinidandi sini)... atau pertanyaan media CSS (lihatdi sini).

    Apabila mengendalikan pembalut teks,text-align: rightpada bekas mungkin membantu dalam beberapa kes.

      Muat turun terkini
      Lagi>
      kesan web
      Kod sumber laman web
      Bahan laman web
      Templat hujung hadapan
      Tentang kita Penafian Sitemap
      Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!