Kami memiliki ckeditor di CMS kami. Pengguna akhir kami akan memasukkan beberapa artikel panjang melalui ckeditor itu. Kami membutuhkan cara untuk mencegah jeda baris di tanda hubung pada artikel tersebut.
Apakah ada cara untuk mencegah jeda baris pada tanda hubung di semua browser?
atau apakah ckeditor memiliki opsi untuk mencegahnya?
Jawaban:
Saya khawatir tidak ada cara yang lebih sederhana untuk melakukannya dengan andal selain memisahkan teks menjadi "kata" (urutan karakter non-spasi yang dipisahkan oleh spasi) dan membungkus setiap "kata" yang berisi tanda hubung di dalam
nobr
markup. Jadi data masukan sepertibla bla foo-bar bla bla
akan dialihkanbla bla <nobr>foo-bar</nobr> bla bla
.Anda bahkan dapat mempertimbangkan untuk memasukkan
nobr
markup setiap kali "kata" berisi apa pun kecuali huruf dan angka. Alasannya adalah bahwa beberapa browser bahkan mungkin merusak string seperti "2/3" atau "f (0)" (lihat halaman saya tentang keanehan pemutusan baris di browser ).sumber
nobr
tag tidak standar, dan sangat tidak dianjurkan oleh W3C. Lihat w3.org/TR/html5/obsolete.html#non-conforming-featuresnobr
markup berfungsi di semua browser, berfungsi bahkan saat stylesheet dinonaktifkan, dan bekerja secara independen dari dukungan untuk karakter khusus. Apakah ada masalah nyata dengannya?Anda dapat menggunakan
‑
yang merupakan Unicode NON-BREAKING HYPHEN (U + 2011).HTML:
‑
atau‑
Lihat juga: http://en.wikipedia.org/wiki/Hyphen#In_computing
sumber
-
dengan‑
.nobr
tag di semua tempat, ini tidak berfungsi dengan baik dalam praktiknya. IE menampilkannya sebagai tanda hubung en, Safari menambahkan lebih banyak ruang di sekitarnya daripada tanda hubung biasa, dan sebagian besar editor teks menampilkannya sebagai tanda tanya atau kotak atau karakter tidak berarti lainnya.white-space: nowrap
seperti yang disarankan oleh derekerdmann. Btw di FF / Win7, tanda pisah malu-malu tampaknya diubah menjadi tanda hubung biasa saat disalin & ditempel di luar Firefox, meskipun aplikasi targetnya mendukung Unicode.Salah satu solusinya adalah menggunakan
span
tag ekstra danwhite-space
properti CSS. Tentukan saja kelas seperti ini:Dan kemudian tambahkan rentang dengan kelas itu di sekitar teks bertanda hubung Anda.
Pendekatan ini seharusnya bekerja dengan baik di semua browser - implementasi buggy yang tercantum di sini adalah untuk nilai
white-space
properti lainnya: http://reference.sitepoint.com/css/white-space#compatibilitysectionsumber
white-space: nowrap
ke seluruh penampung. Jika tidak, biarkan saja; pertama, tidak ada alasan untuk mencegah jeda baris dengan tanda hubung untuk konten umum, dan kedua, Anda tidak mungkin bisa mendapatkan apa yang Anda cari terjadi secara otomatis kecuali jika Anda bersedia meretas CKEditor.<nobr>
jauh lebih jelas.Anda tidak dapat melakukannya tanpa mengedit setiap contoh HTML. Akibatnya, saya menulis beberapa JS untuk menggantikannya:
jQuery:
Vanilla JS:
sumber
Gunakan karakter penggabung kata (
⁠
) di sekitar tanda hubung. Ia bekerja di IE juga.https://en.wikipedia.org/wiki/Word_joiner
perbaiki tanda hubung tertentu ...
atau semuanya ...
sumber
Coba CSS ini:
sumber