Saya telah menggunakan word-wrap: break-word
untuk membungkus teks dalam div
s dan span
s. Namun, sepertinya tidak berfungsi dalam sel tabel. Saya memiliki tabel yang disetel width:100%
, dengan satu baris dan dua kolom. Teks dalam kolom, meskipun ditata dengan yang di atas word-wrap
, tidak membungkus. Ini menyebabkan teks melewati batas sel. Ini terjadi pada Firefox, Google Chrome dan Internet Explorer.
Seperti apa sumbernya:
td {
border: 1px solid;
}
<table style="width: 100%;">
<tr>
<td>
<div style="word-wrap: break-word;">
Looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong word
</div>
</td>
<td><span style="display: inline;">Short word</span></td>
</tr>
</table>
Kata panjang di atas lebih besar dari batas halaman saya, tetapi tidak putus dengan HTML di atas. Saya sudah mencoba saran di bawah ini untuk menambahkan text-wrap:suppress
dan text-wrap:normal
, tetapi tidak ada yang membantu.
html
css
html-table
psikotik
sumber
sumber
white-space: pre-wrap
developer.mozilla.org/en-US/docs/Web/CSS/white-spaceJawaban:
Berikut ini berfungsi untuk saya di Internet Explorer. Perhatikan penambahan
table-layout:fixed
atribut CSSsumber
<colgroup>
, ini memperbaiki ini untuk saya.atau
sumber
<span>
.Word-wrap
akan melanggar kata-kata hanya bila perlutable-layout: fixed;
.Tembakan panjang, tapi periksa dengan Firebug (atau serupa) bahwa Anda tidak sengaja mewarisi aturan berikut:
Ini dapat mengesampingkan perilaku break line yang Anda tentukan.
sumber
white-space:normal;
Ternyata tidak ada cara yang baik untuk melakukan ini. Yang paling dekat dengan saya adalah menambahkan "overflow: hidden;" ke div di sekitar meja dan kehilangan teks. Solusi sebenarnya tampaknya adalah untuk parit tabel. Menggunakan divs dan posisi relatif saya dapat mencapai efek yang sama, minus warisan
<table>
UPDATE 2015: Ini untuk orang-orang seperti saya yang menginginkan jawaban ini. Setelah 6 tahun, ini berhasil, terima kasih kepada semua kontributor.
sumber
Seperti disebutkan, menempatkan teks dalam
div
hampir berfungsi. Anda hanya perlu menentukanwidth
daridiv
, yang beruntung untuk layout yang statis.Ini berfungsi pada FF 3.6, IE 8, Chrome.
sumber
min-width: 100%
bersama denganwidth
untuk memastikandiv
mengambil seluruh sel.Long,Long,Long,Long,Long
. Saya ingin membungkus ini dengan setelah koma (,).Penanganan masalah yang menggunakan overflow-wrap dan berfungsi dengan baik dengan tata letak tabel normal + lebar tabel 100%
https://jsfiddle.net/krf0v6pw/
HTML
CSS
Manfaat:
overflow-wrap:break-word
bukanword-break:break-all
. Yang lebih baik karena mencoba untuk memecahkan ruang terlebih dahulu, dan memotong kata hanya jika kata itu lebih besar dari itu wadah.table-layout:fixed
dibutuhkan Gunakan ukuran otomatis reguler Anda.width
atau tetapmax-width
. Tentukan%
induknya jika perlu.Diuji dalam FF57, Chrome62, IE11, Safari11
sumber
Ubah kode Anda
untuk
Contoh
sumber
break-word
di tempat pertama.Masalah dengan
adalah bahwa itu akan berfungsi tidak begitu baik ketika teks memiliki beberapa spasi, mis
Jika kata
andthenlongerwithoutspaces
cocok dengan sel tabel dalam satu baris tetapilong text with andthenlongerwithoutspaces
tidak, kata panjang akan dipecah menjadi dua, bukannya dibungkus.Solusi alternatif: masukkan U + 200B ( ZWSP ), U + 00AD ( soft hyphen ) atau U + 200C ( ZWNJ ) di setiap kata panjang setelah setiap, katakanlah, karakter 20 (namun, lihat peringatan di bawah):
Peringatan : memasukkan karakter tambahan dengan panjang nol tidak memengaruhi pembacaan. Namun, itu mempengaruhi teks yang disalin ke clipboard (karakter ini tentu saja disalin juga). Jika teks clipboard nantinya digunakan dalam beberapa fungsi pencarian di aplikasi web ... pencarian akan rusak. Meskipun solusi ini dapat dilihat di beberapa aplikasi web terkenal, hindari jika memungkinkan.
Peringatan : saat memasukkan karakter tambahan, Anda tidak harus memisahkan beberapa titik kode dalam grapheme. Lihat https://unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries untuk info lebih lanjut.
sumber
é
dapat ditulis sebagai dua titik kode). Kami mungkin benar-benar berarti "grapheme", tapi saya tidak tahu bahasa apa pun yang membuatnya sepele untuk mengulanginya.Lihat demo ini
Inilah tautan untuk membaca
sumber
break-all
akan menyebabkan browser untuk benar-benar mengabaikan jeda kata ketika memutuskan di mana harus menempatkan jeda baris, dengan efek bahwa meskipun sel Anda berisi prosa normal tanpa kata-kata yang sangat panjang, Anda akan berakhir dengan jeda baris di tengah kata. Ini biasanya tidak diinginkan.Diuji dalam IE 8 dan Chrome 13.
Ini menyebabkan tabel sesuai dengan lebar halaman dan setiap kolom mengambil 50% dari lebar.
Jika Anda lebih suka kolom pertama untuk mengambil lebih banyak halaman, tambahkan
width: 80%
ketd
seperti dalam contoh berikut, menggantikan 80% dengan persentase pilihan Anda.sumber
Satu-satunya hal yang perlu dilakukan adalah menambahkan lebar ke
<td>
atau di<div>
dalam<td>
tergantung pada tata letak yang ingin Anda capai.misalnya:
atau
sumber
Jawaban yang memenangkan hadiah itu benar, tetapi tidak berfungsi jika baris pertama tabel memiliki sel yang digabung / bergabung (semua sel mendapatkan lebar yang sama).
Dalam hal ini Anda harus menggunakan
colgroup
dancol
tag untuk menampilkannya dengan benar:sumber
sumber
p
dalam lebar piksel tetap dalam sel tabel yang tidak memiliki lebar piksel tetap hampir pasti akan berakhir denganp
meluap atau gagal mengisi sel tabel.Tampaknya Anda perlu mengatur
word-wrap:break-word;
elemen blok (div
), dengan lebar yang ditentukan (bukan relatif). Ex:atau menggunakan
word-break:break-all
sesuai saran Abhishek Simon.sumber
Ini bekerja untuk saya:
Dan atribut tabel adalah:
sumber
table-layout: fixed
, tetapi sudah ada jawaban yang jauh lebih tua menyarankan itu, jadi jawaban ini tidak menambahkan informasi baru.Jika Anda tidak memerlukan batas tabel, terapkan ini:
sumber
table-layout: fixed
; ini tidak menambahkan sesuatu yang baru ke halaman.Saya menemukan solusi yang sepertinya berfungsi di Firefox, Google Chrome dan Internet Explorer 7-9. Untuk melakukan tata letak tabel dua kolom dengan teks panjang di satu sisi. Saya mencari di seluruh untuk masalah yang sama, dan apa yang bekerja di satu browser memecah yang lain, atau menambahkan lebih banyak tag ke tabel sepertinya pengkodean yang buruk.
Saya TIDAK menggunakan tabel untuk ini. DL DT DD untuk menyelamatkan. Setidaknya untuk memperbaiki tata letak dua kolom, yang pada dasarnya adalah pengaturan glosarium / kamus / arti kata.
Dan beberapa gaya generik.
Menggunakan kata-mengambang dan margin tersisa, saya mendapatkan apa yang saya butuhkan. Hanya berpikir saya akan berbagi ini dengan orang lain, mungkin itu akan membantu orang lain dengan tata letak gaya definisi dua kolom, dengan kesulitan mendapatkan kata-kata untuk membungkus.
Saya mencoba menggunakan kata-bungkus dalam sel tabel, tetapi hanya bekerja di Internet Explorer 9, (dan Firefox dan Google Chrome tentu saja) terutama mencoba untuk memperbaiki browser Internet Explorer yang rusak di sini.
sumber
Tabel dibungkus secara default, jadi pastikan tampilan sel tabel adalah
table-cell
:sumber
style = "table-layout: fixed; width: 98%; word-wrap: break-word"
Demo - http://jsfiddle.net/Ne4BR/749/
Ini bekerja baik untuk saya. Saya memiliki tautan panjang yang akan menyebabkan tabel melebihi 100% di browser web. Diuji pada IE, Chrome, Android dan Safari.
sumber
table-layout: fixed
".Solusi yang bekerja dengan Google Chrome dan Firefox (tidak diuji dengan Internet Explorer) adalah ditetapkan
display: table-cell
sebagai elemen blok.sumber
Anda dapat mencoba ini jika itu cocok untuk Anda ...
Letakkan teks di dalam td Anda dan nonaktifkan dengan warna latar belakang putih dan tentukan jumlah barisnya.
sumber