Saya mencari untuk mencegah jeda baris setelah tanda hubung -
berdasarkan kasus per kasus yang kompatibel dengan semua browser.
Contoh:
Saya punya teks ini: 3-3/8"
yang dalam HTML adalah ini: 3-3/8”
Masalahnya adalah bahwa di dekat akhir baris, karena tanda hubung, itu putus dan membungkus ke baris berikutnya bukannya memperlakukannya seperti kata lengkap ...
3-
3/8"
Saya sudah mencoba memasukkan "zero width no break character", 
tanpa hasil ...
3-3/8”
Saya melihat ini di Safari dan berpikir itu akan sama di semua browser.
Berikut ini adalah doctype
penyandian karakter saya dan ...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
Apakah ada cara saya bisa mencegah ini dari melanggar garis setelah tanda hubung? Saya tidak memerlukan solusi apa pun yang berlaku untuk seluruh halaman ... hanya sesuatu yang dapat saya masukkan sesuai kebutuhan, seperti "karakter lebar nol tanpa istirahat", kecuali yang berfungsi.
Ini Demo. Cukup buat bingkai menjadi lebih sempit sampai garis putus pada tanda hubung.
‑
adalah tanda hubung yang tidak putus-putus.3-3/8″
atau3-3/8″
. Kutipan bukan bilangan prima. Jika Anda menginginkannya dalam ASCII murni, gunakan saja tanda kutip ganda sebagai gantinya ("
). Lebih disukai, jika akan disajikan sebagai teks yang baik dan dapat dibaca, Anda lebih suka menggunakan3<span style="font-variant: diagonal-fractions">3/8</style>″
, menampilkan '3⅜ ″'Jawaban:
Coba gunakan tanda hubung yang tidak putus
‑
. Saya telah mengganti tanda hubung dengan karakter itu di jsfiddle Anda, menyusut bingkai ke bawah sekecil mungkin, dan garis tidak terpecah di sana lagi.sumber

. Tidak pernah terpikir oleh saya bahwa ada karakter tanda hubung yang berdiri sendiri yang tidak akan pecah.Anda juga dapat membungkus teks yang relevan dengan
sumber
‑
) mungkin membuat sedikit lebih lama daripada tanda hubung biasa di browser tertentu adalah sepele bagi saya.IE8 / 9 membuat tanda hubung tanpa putus yang disebutkan dalam jawaban CanSpice lebih lama dari tanda hubung biasa. Ini adalah panjang en-dash bukan tanda hubung khas. Perbedaan tampilan ini adalah masalah bagi saya.
Karena saya tidak dapat menggunakan jawaban CSS yang ditentukan oleh Deb, saya memilih untuk tidak menggunakan tag istirahat.
Selain itu, saya menemukan skenario khusus yang menyebabkan IE8 / 9 rusak pada tanda hubung.
IE menerjemahkannya seperti ini.
Kode berikut mereproduksi masalah yang digambarkan di atas. Saya harus menggunakan tag meta untuk memaksa rendering ke IE9 karena IE10 telah memperbaiki masalah ini. Tidak ada biola karena tidak mendukung tag meta.
sumber
nobr
adalah cara yang paling lintas-browser dan bekerja secara independen dari font dan CSS. Thenobr
elemen tidak didefinisikan dalam spesifikasi HTML, tapi ini harus dianggap sebagai formalitas saja. Tetapi jika Anda harus menulis dengan spesifikasi HTML, maka jawaban Deb, menggunakan CSS, adalah pilihan terbaik.nobr
tag ini tidak standar dan dapat rusak kapan saja. Dokumentasi MDN tidak merekomendasikan untuk menggunakan tag ini: developer.mozilla.org/en-US/docs/Web/HTML/Element/nobrAnda juga dapat melakukannya "dengan cara joiner" dengan memasukkan "
U+2060
Word Joiner ".Jika
Accept-Charset
memungkinkan, karakter unicode itu sendiri dapat dimasukkan langsung ke dalam output HTML.Kalau tidak, itu bisa dilakukan menggunakan entitas encoding. Misalnya untuk bergabung dengan teks
red-brown
, gunakan:atau (setara desimal):
. Karakter lain yang dapat digunakan adalah "
U+FEFF
Nol Tanpa Batas Ruang " [ 1] :dan (setara desimal):
[1] : Perhatikan bahwa meskipun metode ini masih berfungsi di browser utama seperti Chrome, metode ini sudah tidak digunakan lagi sejak Unicode 3.2 .
Perbandingan "the joiner way" dengan "
U+2011
Non-breaking Hyphen ":Kata joiner dapat digunakan untuk semua karakter lain, bukan hanya tanda hubung.
Saat menggunakan kata joiner, sebagian besar penyaji akan merasterisasi teks secara identik . Di Chrome, FireFox, IE, dan Opera, rendering dari tanda hubung normal, misalnya:
identik dengan rendering tanda hubung normal (dengan U + 2060 Word Joiner), mis:
sedangkan dua render di atas berbeda dari render " Non-breaking Hyphen ", misalnya:
. (Tingkat perbedaannya tergantung pada browser dan bergantung pada font. Misalnya ketika menggunakan deklarasi font "
arial
", Firefox dan IE11 menunjukkan variasi yang relatif besar, sedangkan Chrome dan Opera menunjukkan variasi yang lebih kecil.)Perbandingan "cara bergabung" dengan
<span class=c1></span>
(CSS.c1 {white-space:nowrap;}
) dan<nobr></nobr>
:Kata joiner dapat digunakan untuk situasi di mana penggunaan tag HTML dibatasi, misalnya bentuk situs web dan forum.
Pada spektrum presentasi dan konten , mayoritas akan menganggap kata joiner lebih dekat dengan konten, jika dibandingkan dengan tag.
• Seperti yang diuji pada Windows 8.1 Core 64-bit menggunakan:
• IE 11.0.9600.18205
• Firefox 43.0.4
• Chrome 48.0.2564.109 (Pembuatan Resmi) m (32-bit)
• Opera 35.0.2066.92
sumber
bingo-⁠bongo

Terlambat ke pesta, tapi kupikir ini yang paling elegan. Gunakan karakter WORD JOINER Unicode & # 8288 ; di kedua sisi tanda hubung, atau tanda hubung, atau karakter apa pun.
Jadi, seperti ini:
Ini akan bergabung dengan simbol di kedua ujungnya ke tetangganya (tanpa menambahkan spasi) dan mencegah garis putus.
sumber