Teks nowrap kosong di dalam bekas Flexbox melimpahi halaman.
Saya nampaknya menghadapi masalah kelebihan yang pelik dalam reka letak CSS.
Saya mempunyai jadual dan dalam satu lajur saya mempunyai bekas fleksibel dengan dua lajur. Lajur pertama mengandungi pilihan, teks kedua perlu kekal dalam satu baris dan berakhir dengan elipsis jika terlalu panjang (teks adalah dinamik)
Untuk menjadi jelas, saya tidak mempunyai kawalan ke atas html jadual. Hanya dalam lajur saya boleh menambah HTML.
Limpahan teks di dalam flexbox nampaknya masalah biasa, tetapi semua penyelesaian biasanya tidak berfungsi dalam kes saya. Apa yang saya dah cuba:
Ini akan menjelaskan maksud saya:
.container { display: flex; min-width: 0; width: 100%; column-gap: 3rem; } .text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
<!-- Works perfectly (just a test)--> <b>This is what i need:</b> <div class='container'> <div class='child select'> <select> <option>Option 1 is a long option</option> <option>Option 2 is shorter</option> </select> </div> <div class='child text'> Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. </div> </div> <br><br> <!-- Overflows page (this needs to actually work) --> <b>This is where it needs to work (inside table):</b> <table> <tbody> <tr> <th scope="row"> <label for="select-id">Description field</label> </th> <td> <div class='container'> <div class='child select'> <select id='select-id'> <option>Option 1 is a long option</option> <option>Option 2 is shorter</option> </select> </div> <div class='child text'> Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. </div> </div> </td> </tr> </tbody> </table>
Saya bersetuju bahawa penyelesaian ini hanya berfungsi dengan penyemak imbas terkini, atau walaupun penyemak imbas tertentu diperlukan.
Anda boleh menyelesaikan masalah ini dengan menggunakan
vw
单元将宽度分配给.text
.Sebagai contoh, ini berlaku apabila saya hanya menggantikan
width: 50vw;
添加到.text
denganSecara lalai, lebar jadual akan dilaraskan berdasarkan kandungannya. Anda perlu menggunakan
table-layout 更新算法:fixed ;
并添加width: 100%;
untuk mengehadkan lebarnya: