Saya memiliki meja dengan lebar 100%. Jika saya meletakkan <td>
s di dalamnya, kolom tersebut akan tersebar dengan panjang kolom yang sama. Namun, saya ingin semua kolom kecuali yang terakhir memiliki lebar sekecil mungkin, tanpa membungkus teks.
Apa yang saya lakukan pertama kali adalah bahwa saya menetapkan width="1px"
semua <td>
kecuali yang terakhir (meskipun usang, tetapi style="width:1px"
tidak berpengaruh apa pun), yang berfungsi dengan baik sampai saya memiliki data multi-kata di kolom. Dalam hal ini, untuk menjaga panjangnya sekecil mungkin, teks saya dibungkus.
Biar saya tunjukkan. Bayangkan tabel ini:
---------------------------------------------------------------------------------
element1 | data | junk here | last column
---------------------------------------------------------------------------------
elem | more data | other stuff | again, last column
---------------------------------------------------------------------------------
more | of | these | rows
---------------------------------------------------------------------------------
Tidak peduli apa yang saya coba, yang terus saya dapatkan adalah:
---------------------------------------------------------------------------------
element1 | data | junk here | last column
---------------------------------------------------------------------------------
elem | more data | other stuff | again, last column
---------------------------------------------------------------------------------
more | of | these | rows
---------------------------------------------------------------------------------
atau (meskipun saya set style="whitespace-wrap:nowrap"
) ini:
---------------------------------------------------------------------------------
| | junk | last
element1 | data | |
| | here | column
---------------------------------------------------------------------------------
| more | other | again,
elem | | | last
| data | stuff | column
---------------------------------------------------------------------------------
more | of | these | rows
---------------------------------------------------------------------------------
Saya ingin mendapatkan tabel yang saya sajikan terlebih dahulu. Bagaimana saya mencapai ini? (Saya lebih suka tetap berpegang pada standar dan menggunakan CSS. Sejujurnya saya tidak peduli jika IE belum menerapkan bagian dari standar juga)
Penjelasan lebih lanjut: Yang saya butuhkan adalah membuat kolom sesingkat mungkin tanpa membungkus kata (kolom terakhir harus berukuran besar agar lebar tabel benar-benar mencapai 100%). Jika Anda mengetahui LaTeX, yang saya inginkan adalah bagaimana tabel secara alami muncul di LaTeX saat Anda menyetel lebarnya ke 100%.
Catatan: Saya menemukan ini tetapi masih memberi saya yang sama seperti tabel terakhir.
sumber
Jawaban:
whitespace-wrap: nowrap
bukan css yang valid. Itu yangwhite-space: nowrap
Anda cari.sumber
Ini berfungsi di Google Chrome, setidaknya. ( jsFiddle )
sumber
width
pendekatan untuk kebutuhan saya karena saya memiliki beberapa kolom lebar (daripada satu kolom lebar karena solusi di atas berfungsi lebih baik). Saya menghapuswidth: 99%
dariexpand
dan menambahkanwidth: 1%
keshrink
dan solusi ini bekerja dengan baik untuk saya!td:nth-child(1), td:nth-child(2){white-space:nowrap;} td:nth-child(3){width: 99%;}
- Untuk berjaga-jaga jika ada pemula yang mampir. :)col
'class
atribut' ke tabel yang sesuaitd
sDengan menggunakan kode di atas, sel tabel terakhir akan mencoba menjadi sebesar mungkin, dan Anda akan mencegah sel tabel sebelumnya dari pembungkus. Ini sama seperti jawaban lain yang diberikan, tetapi jauh lebih efisien.
sumber
width: 1px;
gaya anak non-terakhir untuk mendapatkan kolom non-terakhir untuk dirender dengan lebar minimal.Topik yang sedikit berbeda tetapi mungkin membantu seseorang yang tersandung pada pertanyaan ini seperti saya.
(Saya baru saja melihat komentar Campbeln yang menyarankan hal ini persis setelah menulis jawaban saya di bawah, jadi ini pada dasarnya adalah penjelasan rinci dari komentarnya)
Saya memiliki masalah sebaliknya: Saya ingin mengatur satu kolom tabel dengan lebar minimum yang mungkin tanpa merusaknya di ruang putih (kolom terakhir dalam contoh berikut) tetapi lebar yang lain harus dinamis (termasuk jeda baris):
Solusi sederhana:
HTML
CSS
Kolom dengan kelas
shrink
hanya diperluas ke lebar minimum tetapi yang lain tetap dinamis. Ini bekerja karenawidth
daritd
secara otomatis diperluas untuk menyesuaikan seluruh konten.Contoh Cuplikan
Tampilkan cuplikan kode
sumber
Anda dapat mengatur lebar tetap dengan menempatkan
div
tag di dalamnyatd
https://jsfiddle.net/8bf17o1v/
sumber
Jika Anda membutuhkan beberapa baris teks dalam sel tabel.
Jangan gunakan
white-space: nowrap
gunakanwhite-space: pre;
sebagai gantinya.Dalam sel tabel hindari format kode apa pun seperti baris dan indensi baru (spasi kosong) dan gunakan
<br>
untuk mengatur baris / baris teks baru. Seperti ini:Demo di CodePen
sumber
Kombinasi salah satu
white-space: nowrap
atauwhite-space: pre
denganmin-width: <size>
akan melakukan pekerjaan itu.width: <size>
pada dirinya sendiri tidak cukup untuk menahan meja dari meremas.sumber