Chcę zapobiec łamaniu wiersza po łączniku -
na podstawie poszczególnych przypadków, który jest zgodny ze wszystkimi przeglądarkami.
Przykład:
Mam ten tekst: 3-3/8"
który w HTML to: 3-3/8”
Problem polega na tym, że pod koniec linii z powodu łącznika łamie się i zawija do następnej linii, zamiast traktować ją jak pełne słowo ...
3-
3/8"
Próbowałem wstawić znak „zero szerokości bez przerwy”, ale 
bez powodzenia ...
3-3/8”
Widzę to w Safari i myślę, że będzie tak samo we wszystkich przeglądarkach.
Oto moje doctype
i kodowanie znaków ...
<!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" />
Czy jest jakiś sposób, aby zapobiec łamaniu się linii po łączniku? Nie potrzebuję żadnego rozwiązania, które dotyczy całej strony ... po prostu coś, co mogę wstawić w razie potrzeby, na przykład „znak zerowej szerokości bez podziału”, oprócz tego, który działa.
Oto demo. Po prostu zmniejszaj ramkę, aż linia zepsuje się przy łączniku.
źródło
‑
jest niełamliwym łącznikiem.3-3/8″
lub3-3/8″
. Cytaty nie są liczbami pierwszymi. Jeśli chcesz to w czystym ASCII, po prostu użyj prostych podwójnych cudzysłowów zamiast ("
). Najlepiej, jeśli ma być prezentowany jako dobry, czytelny tekst, zamiast tego należy użyć3<span style="font-variant: diagonal-fractions">3/8</style>″
, wyświetlając „3⅜ ″”Odpowiedzi:
Spróbuj użyć niełamliwego łącznika
‑
. Zastąpiłem myślnik tą postacią w twoim jsfiddle, zmniejszyłem ramkę tak małą, jak to tylko możliwe, a linia już się tam nie dzieli.źródło

. Po prostu nigdy nie przyszło mi do głowy, że istnieje osobny łącznik, który się nie złamie.Możesz także zawinąć odpowiedni tekst
źródło
‑
) może renderować się nieco dłużej niż zwykły łącznik w niektórych przeglądarkach, był dla mnie trywialny.IE8 / 9 renderuje nieprzerwany łącznik wymieniony w odpowiedzi CanSpice dłużej niż typowy łącznik. Jest to długość kreski zamiast typowego łącznika. Ta różnica w wyświetlaniu była dla mnie przełomowa.
Ponieważ nie mogłem użyć odpowiedzi CSS określonej przez Deb, zamiast tego zdecydowałem się nie używać tagów podziału.
Ponadto znalazłem konkretny scenariusz, który spowodował uszkodzenie IE8 / 9 na łączniku.
IE renderuje to w ten sposób.
Poniższy kod odtwarza problem przedstawiony powyżej. Musiałem użyć metatagu, aby wymusić renderowanie do IE9, ponieważ IE10 naprawił problem. Bez skrzypiec, ponieważ nie obsługuje metatagów.
źródło
nobr
jest najbardziej przeglądarką i działa niezależnie od czcionek i CSS.nobr
Element nie jest zdefiniowany w specyfikacji HTML, ale to powinno być traktowane tylko jako formalność. Ale jeśli musisz pisać według specyfikacji HTML, najlepszym rozwiązaniem jest odpowiedź Deb przy użyciu CSS.nobr
tag jest niestandardowy i może się zepsuć w dowolnym momencie. Dokumentacja MDN nie zaleca używania tego znacznika: developer.mozilla.org/en-US/docs/Web/HTML/Element/nobrMożesz to również zrobić „metodą łączenia”, wstawiając „
U+2060
Word Joiner ”.Jeśli
Accept-Charset
pozwala, sam znak Unicode można wstawić bezpośrednio do wyjścia HTML.W przeciwnym razie można to zrobić za pomocą kodowania encji. Np. Aby dołączyć do tekstu
red-brown
, użyj:lub (ekwiwalent dziesiętny):
. Inną użyteczną postacią jest „
U+FEFF
Zero szerokości miejsca bez przerw ” [ 1] :oraz (ekwiwalent dziesiętny):
[1] : Pamiętaj, że chociaż ta metoda wciąż działa w głównych przeglądarkach, takich jak Chrome, jest przestarzała od Unicode 3.2 .
Porównanie „sposobu łączenia” z „
U+2011
łącznikiem bez przełamywania ”:Słowa łączącego można używać do wszystkich innych znaków, a nie tylko łączników.
Podczas używania słowa joiner większość rendererów będzie rasteryzować tekst identycznie . W Chrome, FireFox, IE i Opera renderowanie zwykłych łączników, np .:
jest identyczny z renderowaniem zwykłych łączników (z łącznikiem słów U + 2060), np .:
podczas gdy powyższe dwa rendery różnią się od renderowania „ łącznika bez łamania ”, np .:
. (Różnica jest zależna od przeglądarki i czcionki. Np. W przypadku deklaracji czcionki „
arial
” Firefox i IE11 pokazują stosunkowo duże odmiany, a Chrome i Opera pokazują mniejsze odmiany.)Porównanie „sposobu łączenia” z
<span class=c1></span>
(CSS.c1 {white-space:nowrap;}
) i<nobr></nobr>
:Słowa joiner można używać w sytuacjach, w których użycie tagów HTML jest ograniczone, np. W przypadku stron internetowych i forów.
Jeśli chodzi o spektrum prezentacji i treści , większość uważa słowo joiner za bliższe treści, w porównaniu do tagów.
• Testowany na 64-bitowym systemie Windows 8.1 Core przy użyciu:
• IE 11.0.9600.18205
• Firefox 43.0.4
• Chrome 48.0.2564.109 (oficjalna wersja) m (32-bit)
• Opera 35.0.2066.92
źródło
bingo-⁠bongo

Późno na imprezę, ale myślę, że to najbardziej eleganckie. Użyj znaku WORD JOINER Unicode & # 8288 ; po obu stronach łącznika, myślnika lub dowolnej postaci.
Więc tak:
Spowoduje to połączenie symbolu na obu końcach z sąsiadami (bez dodawania spacji) i zapobiegnie łamaniu linii.
źródło