cari

Rumah  >  Soal Jawab  >  teks badan

Mengapa item lentur tidak boleh mengecil kepada kurang daripada saiz kandungan?

<p>Saya mempunyai 4 lajur flexbox dan semuanya berfungsi dengan baik, tetapi apabila saya menambah beberapa teks pada satu lajur dan menetapkannya kepada saiz fon yang besar, ia menjadikan lajur lebih lebar daripada yang sepatutnya disebabkan oleh sifat flex. </p> <p>Saya cuba menggunakan <code>word-break: break-word</code> dan ia membantu, tetapi apabila saya mengubah saiz lajur kepada lebar yang sangat kecil, huruf dalam teks dipecahkan kepada beberapa baris (satu huruf setiap baris), tetapi lebar lajur tidak akan lebih kecil daripada saiz huruf. </p> <p>Tonton video ini (Pada mulanya, lajur pertama adalah yang paling kecil, tetapi apabila saya mengubah saiz tetingkap, ia menjadi lajur terluas. Saya hanya mahu sentiasa menghormati tetapan fleksibel; saiz fleksibel ialah 1:3: 4 :4)</p> <p>Saya tahu bahawa menetapkan saiz fon dan padding lajur kepada nilai yang lebih kecil akan membantu... tetapi adakah terdapat sebarang penyelesaian lain? </p> <p>Saya tidak boleh menggunakan <code>overflow-x: hidden</code>. </p> <p>JSFiddle</p> <p><br /></p> <pre class="brush:css;toolbar:false;">.container { paparan: flex; lebar: 100% } .col { ketinggian min: 200px; padding: 30px; putus-kata: putus-kata } .col1 { lentur: 1; latar belakang: oren; saiz fon: 80px } .col2 { lentur: 3; latar belakang: kuning } .col3 { lentur: 4; latar belakang: biru langit } .col4 { lentur: 4; latar belakang: merah }</pre> <pre class="brush:html;toolbar:false;"><div class="container"> <div class="col col1">Lorem ipsum dolor</div> <div class="col col2">Lorem ipsum dolor</div> <div class="col col3">Lorem ipsum dolor</div> <div class="col col4">Lorem ipsum dolor</div> </div></pre> <p><br /></p>
P粉432906880P粉432906880517 hari yang lalu545

membalas semua(2)saya akan balas

  • P粉440453689

    P粉4404536892023-08-22 12:47:17

    Saya mendapati ini telah menyebabkan saya mengalami masalah berkali-kali sejak beberapa tahun lalu untuk kedua-dua flex dan grid, jadi saya mencadangkan perkara berikut:

    * { min-width: 0; min-height: 0; }

    Jika anda memerlukan tingkah laku ini, gunakan sahaja min-width: automin-height: auto.

    Malah, anda juga boleh menambah saiz kotak untuk menjadikan semua susun atur lebih munasabah:

    * { box-sizing: border-box; min-width: 0; min-height: 0; }

    Adakah sesiapa tahu jika terdapat sebarang akibat yang pelik? Dalam beberapa tahun menggunakan kaedah di atas, saya tidak mengalami sebarang masalah. Malah, saya tidak dapat memikirkan sebarang situasi di mana saya ingin susun atur daripada kandungan ke luar ke dalam flex/grid, dan bukannya dari flex/grid ke dalam ke kandungan --- dan jika situasi sedemikian wujud, ia sudah tentu jarang berlaku. Jadi ini terasa seperti lalai yang teruk. Tetapi mungkin saya kehilangan sesuatu?

    balas
    0
  • P粉752479467

    P粉7524794672023-08-22 10:57:07

    Saiz minimum automatik untuk projek Flex

    Anda menghadapi tetapan lalai flexbox.

    Item fleksibel tidak boleh lebih kecil daripada saiz kandungannya pada paksi utama.

    Tetapan lalai ialah...

    • min-width: auto
    • min-height: auto

    ... Berkenaan untuk melenturkan item dalam arah baris dan lajur masing-masing.

    Anda boleh menetapkan item flex kepada:

    • min-width: 0
    • min-height: 0
    • overflow: hidden(或任何其他值,除了visible)

    Spesifikasi Flexbox

    Mengenai autonilai...

    Dalam erti kata lain:

    • min-width: automin-height: auto默认仅在overflowvisible dan
    • hanya terpakai secara lalai apabila limpahan kelihatan.
    • overflow的值不是visible,则min-size属性的值为0Jika
    • .
    • overflow: hidden可以替代min-width: 0min-height: 0Oleh itu, overflow: hidden boleh menggantikan
    • dan
    .

      dan...
    • Algoritma saiz minimum hanya berfungsi pada gelendong. min-height: auto
    • Sebagai contoh, item fleksibel dalam bekas berorientasikan baris tidak mendapat
    • secara lalai.
      • Untuk penjelasan yang lebih terperinci, lihat siaran ini:
      • lebar min ditunjukkan secara berbeza dalam arah lentur: baris dan arah lentur: lajur

    Anda telah menggunakan lebar min: 0 tetapi projek anda masih tidak akan mengecut?

    Bekas Flex Bersarang

    min-width: auto / min-height: auto

    Jika anda bekerja dengan item flex pada berbilang peringkat struktur HTML anda, anda mungkin mahu mengatasi

    /min-width: auto的较高级别flex项目可以阻止下方嵌套的具有min-width: 0 lalai pada item peringkat lebih tinggi.

    Pada asasnya, item flex tahap yang lebih tinggi dengan

    menghalang item bersarang di bawah dengan
    sifat CSS ruang putih bercanggah dengan reka letak fleksibel


    Demo yang disemak semula

    .container {
      display: flex;
    }
    
    .col {
      min-height: 200px;
      padding: 30px;
      word-break: break-word
    }
    
    .col1 {
      flex: 1;
      background: orange;
      font-size: 80px;
      min-width: 0;   /* NEW */
    }
    
    .col2 {
      flex: 3;
      background: yellow
    }
    
    .col3 {
      flex: 4;
      background: skyblue
    }
    
    .col4 {
      flex: 4;
      background: red
    }
    <div class="container">
      <div class="col col1">Lorem ipsum dolor</div>
      <div class="col col2">Lorem ipsum dolor</div>
      <div class="col col3">Lorem ipsum dolor</div>
      <div class="col col4">Lorem ipsum dolor</div>
    </div>

    balas
    0
  • Batalbalas