Rumah  >  Soal Jawab  >  teks badan

Mengapa item lentur tidak mengecut melebihi saiz kandungan?

<p>Saya mempunyai 4 lajur Flexbox dan semuanya berfungsi dengan baik, tetapi apabila saya menambah beberapa teks pada lajur dan menetapkannya kepada saiz fon yang besar, lajur itu 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 kurang daripada saiz huruf. </p> <p>Tonton video ini (Pada mulanya, lajur pertama adalah yang paling kecil, tetapi apabila saya mengubah saiz tetingkap, ia adalah lajur terluas. Saya hanya mahu sentiasa menghormati tetapan Flex; Saiz Flex 1:3:4:4) </p> <p>Saya tahu, menetapkan saiz fon dan pelapik lajur kepada lebih kecil akan membantu...tetapi adakah terdapat 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粉242126786P粉242126786440 hari yang lalu499

membalas semua(2)saya akan balas

  • P粉156532706

    P粉1565327062023-08-28 13:19:46

    Saya dapati Flex dan grid telah mengganggu saya selama bertahun-tahun, jadi inilah yang saya cadangkan:

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

    Kemudian jika anda memerlukan tingkah laku ini hanya gunakan min-width: automin-height: auto .

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

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

    Adakah sesiapa tahu jika terdapat sebarang akibat yang pelik? Saya tidak mempunyai sebarang masalah dalam beberapa tahun menggunakan gabungan kaedah di atas. Sebenarnya, saya tidak dapat memikirkan sebarang kes di mana saya ingin susun atur daripada kandungan ke luar ke dalam Flex/Grid, dan bukannya susun atur daripada Flex/Grid ke dalam kandungan --- sudah tentu jika ia wujud, ia jarang berlaku . Jadi ini terasa seperti lalai yang teruk. Tetapi mungkin saya kehilangan sesuatu?

    balas
    0
  • P粉043295337

    P粉0432953372023-08-28 12:43:23

    Saiz minimum automatik untuk projek Flex

    Anda menghadapi tetapan lalai Flexbox.

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

    Nilai lalai ialah...

    • 最小宽度:自动
    • 最小高度:自动

    ...Item anjal untuk arah baris dan lajur masing-masing.

    Anda boleh mengatasi lalai ini dengan menetapkan item fleksibel kepada:

    • 最小宽度:0
    • 最小高度:0
    • 溢出:隐藏(或任何其他值,可见Kecuali)

    Spesifikasi Flexbox

    Mengenai autonilai...

    Dalam erti kata lain:

      Berkenaan apabila
    • min-width: automin-height: auto 默认值仅在overflow 可见.
    • Jikaoverflow值不可见,则min-size属性的值为0.
    • Oleh itu, overflow: hide 可以替代 min-width: 0min-height: 0.

    Juga...


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

    Bekas Flex Bersarang

    Jika anda bekerja dengan projek Flex pada berbilang peringkat struktur HTML, anda mungkin mahu membatalkan lalai min-width: auto / min-height: auto pada projek peringkat lebih tinggi.

    Pada asasnya, projek Flex tahap lebih tinggi dengan min-width: auto 的更高级别的 Flex 项目可以防止使用 min-width: 0 menghalang projek bersarang di bawah dengan

    lebar min: 0
    daripada mengecut.

    Contoh:
    • Barang fleksibel tidak mengecut lebih kecil daripada kandungannya
    • Jadikan anak sesuai dengan ibu bapa
    • Sifat CSS kosong boleh menyebabkan masalah dengan Flex

    Arahan pemaparan penyemak imbas

    Demo yang diubah suai

    🎜
    .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