นี่คือปัญหาเดียวกัน
คุณต้องตั้งค่าtable-layout:fixed
และความกว้างที่เหมาะสมในองค์ประกอบตารางรวมถึงoverflow:hidden
และwhite-space: nowrap
ในเซลล์ตาราง
ตัวอย่าง
คอลัมน์ความกว้างคงที่
ความกว้างของตารางจะต้องเท่ากัน (หรือเล็กกว่า) กว่าเซลล์ที่มีความกว้างคงที่
ด้วยคอลัมน์ความกว้างคงที่หนึ่งคอลัมน์:
* {
box-sizing: border-box;
}
table {
table-layout: fixed;
border-collapse: collapse;
width: 100%;
max-width: 100px;
}
td {
background: #F00;
padding: 20px;
overflow: hidden;
white-space: nowrap;
width: 100px;
border: solid 1px #000;
}
<table>
<tbody>
<tr>
<td>
This_is_a_terrible_example_of_thinking_outside_the_box.
</td>
</tr>
<tr>
<td>
This_is_a_terrible_example_of_thinking_outside_the_box.
</td>
</tr>
</tbody>
</table>
ด้วยคอลัมน์ความกว้างคงที่หลายรายการ:
* {
box-sizing: border-box;
}
table {
table-layout: fixed;
border-collapse: collapse;
width: 100%;
max-width: 200px;
}
td {
background: #F00;
padding: 20px;
overflow: hidden;
white-space: nowrap;
width: 100px;
border: solid 1px #000;
}
<table>
<tbody>
<tr>
<td>
This_is_a_terrible_example_of_thinking_outside_the_box.
</td>
<td>
This_is_a_terrible_example_of_thinking_outside_the_box.
</td>
</tr>
<tr>
<td>
This_is_a_terrible_example_of_thinking_outside_the_box.
</td>
<td>
This_is_a_terrible_example_of_thinking_outside_the_box.
</td>
</tr>
</tbody>
</table>
คอลัมน์ความกว้างคงที่และของไหล
ต้องตั้งค่าความกว้างสำหรับตารางแต่ความกว้างพิเศษใด ๆ จะถูกดำเนินการโดยเซลล์ของเหลว
ด้วยคอลัมน์หลายคอลัมน์ความกว้างคงที่และความกว้างของของไหล:
* {
box-sizing: border-box;
}
table {
table-layout: fixed;
border-collapse: collapse;
width: 100%;
}
td {
background: #F00;
padding: 20px;
border: solid 1px #000;
}
tr td:first-child {
overflow: hidden;
white-space: nowrap;
width: 100px;
}
<table>
<tbody>
<tr>
<td>
This_is_a_terrible_example_of_thinking_outside_the_box.
</td>
<td>
This_is_a_terrible_example_of_thinking_outside_the_box.
</td>
</tr>
<tr>
<td>
This_is_a_terrible_example_of_thinking_outside_the_box.
</td>
<td>
This_is_a_terrible_example_of_thinking_outside_the_box.
</td>
</tr>
</tbody>
</table>
vertical-align:middle
และเพิ่มไปยัง DIV ไม่สามารถแก้ไขปัญหาได้