Saya punya sel tabel yang saya selalu ingin menjadi lebar tertentu. Namun, itu tidak berfungsi dengan string besar dari teks yang tidak ditempatkan. Berikut ini adalah test case:
td {
border: solid green 1px;
width: 200px;
overflow: hidden;
}
<table>
<tbody>
<tr>
<td>
This_is_a_terrible_example_of_thinking_outside_the_box.
</td>
</tr>
</tbody>
</table>
Bagaimana cara saya membuat teks terpotong di tepi kotak, alih-alih membiarkan kotaknya melebar?
vertical-align:middle
dan bahkan menambahkannya ke DIV tidak memperbaiki masalah.Terapkan CSS
table-layout:fixed;
(dan kadang-kadangwidth:<any px or %>
) ke TABEL danwhite-space: nowrap; overflow: hidden;
gaya di TD. Kemudian mengatur lebar CSS pada yang benar sel atau kolom elemen.Secara signifikan, lebar kolom tabel tata letak tetap ditentukan oleh lebar sel di baris pertama tabel. Jika ada elemen TH di baris pertama, dan lebar diterapkan ke TD (dan bukan TH), maka lebar hanya berlaku untuk konten TD (white-space dan overflow mungkin diabaikan); kolom tabel akan didistribusikan secara merata terlepas dari lebar TD yang ditetapkan (karena tidak ada lebar yang ditentukan [pada TH di baris pertama]) dan kolom akan [dihitung] sama dengan lebar; tabel tidak akan menghitung ulang lebar kolom berdasarkan lebar TD di baris berikutnya. Atur lebar pada elemen sel pertama yang akan ditemui tabel.
Cara lainnya, dan cara teraman untuk mengatur lebar kolom adalah dengan menggunakan
<COLGROUP>
dan memberi<COL>
tag pada tabel dengan lebar CSS diatur pada setiap COL lebar tetap. CSS terkait sel memainkan lebih baik ketika tabel mengetahui lebar kolom di muka.sumber
Saya tidak terbiasa dengan masalah spesifik, tetapi Anda dapat menempel div, dll di dalam td dan mengatur overflow itu.
sumber
Nah di sini ada solusi untuk Anda, tetapi saya tidak begitu mengerti mengapa ini berhasil:
Yaitu, membungkus isi sel dalam div.
sumber
overflow:hidden
dapat dihapus daritd
, dan lebardiv
dapat diatur ke 100% sehingga berfungsi dengantd
lebar apa pun (termasuk yang berukuran otomatis!)Solusi terbaik adalah dengan memasukkan div ke dalam sel tabel dengan lebar nol. Sel tabel Tbody akan mewarisi lebarnya dari lebar yang didefinisikan thead. Posisi: margin relatif dan negatif seharusnya berhasil!
Berikut adalah tangkapan layar: https://flic.kr/p/nvRs4j
sumber
Anda harus mengatur atribut style tabel:
width
dantable-layout: fixed;
membiarkan 'overflow: hidden;' atribut berfungsi dengan baik.Jika ini bekerja lebih baik daripada menggunakan divs dengan
width
atribut style, terutama ketika menggunakannya untuk perhitungan ukuran dinamis, tabel akan memiliki DOM yang lebih sederhana yang membuat manipulasi lebih mudah karena koreksi untuk bantalan dan margin tidak diperlukanSebagai tambahan, Anda tidak harus mengatur lebar untuk semua sel tetapi hanya untuk sel di baris pertama.
Seperti ini:
sumber
Saya baru saja mengalami masalah yang sama, dan harus menggunakan bagian
<div>
dalam<td>
pada awalnya (solusi John MacIntyre tidak bekerja untuk saya karena berbagai alasan).Perhatikan bahwa
<td><div>...</div></td>
itu bukan penempatan yang valid untuk div jadi alih-alih saya menggunakan set<span>
dengandisplay:block;
. Ini memvalidasi baik-baik saja sekarang dan berfungsi.sumber
Solusi termudah dan paling sederhana yang berfungsi:
sumber
untuk membuat lebih sederhana, saya mengusulkan untuk meletakkan textarea di dalam td yang dikelola secara otomatis overflow
<td><textarea autofocus>$post_title</textarea></td>
harus diperbaiki
sumber
menampilkan 123456
sumber