Wie lösen Sie das Problem mit weichen Bindestrichen auf Ihren Webseiten? In einem Text können lange Wörter enthalten sein, die Sie möglicherweise mit einem Bindestrich umbrechen möchten. Sie möchten jedoch nicht, dass der Bindestrich anzeigt, ob sich das gesamte Wort in derselben Zeile befindet.
Laut Kommentaren auf dieser Seite <wbr>
handelt es sich um eine nicht standardmäßige "von Netscape erfundene Tag-Suppe". Es scheint, dass ­
es auch Probleme mit der Standardkonformität gibt . Es scheint keine Möglichkeit zu geben, eine funktionierende Lösung für alle Browser zu finden .
Wie gehen Sie mit weichen Bindestrichen um und warum haben Sie sich dafür entschieden? Gibt es eine bevorzugte Lösung oder Best Practice?
Siehe verwandte SO-Diskussion hier .
html
text
soft-hyphen
wbr
Pontus
quelle
quelle
<wbr>
überhaupt kein Bindestrich sein soll.Antworten:
Leider ist­
die Unterstützung zwischen den Browsern so inkonsistent, dass sie nicht wirklich verwendet werden kann.QuirksMode ist richtig - es gibt derzeit keine gute Möglichkeit, weiche Bindestriche in HTML zu verwenden. Sehen Sie, was Sie tun können, um ohne sie auszukommen.2013 edit: Nach Quirksmode ,
­
jetzt arbeitet , / ist auf allen gängigen Browsern unterstützt.quelle
­
Wort in Chrome v21 getestet und es ignoriert den weichen Bindestrich korrekt. Ich bin mir jedoch nicht sicher über IE, FF und andere Browser.­
Nutzung aufgrund bestimmter Fehler im Webkit (die die neuesten Versionen von Safari, Safari iOS und Chrome betreffen) einstellen, was dazu führte, dass seltsame Zeichen mit einer erheblichen Anzahl von benutzerdefinierten Schriftarten (sowohl kostenlos als auch kommerziell) gerendert wurdenZusammenfassung vom Februar 2015 (teilweise aktualisiert im November 2017)
Sie alle funktionieren ziemlich gut,
­
da Google immer noch Wörter indizieren kann, die sie enthalten.­
und­
beide werden wie erwartet in großen Browsern angezeigt (sogar im alten IE!).<wbr>
wird in neueren Versionen von IE (10 oder 11) nicht unterstützt und funktioniert in Edge nicht ordnungsgemäß.­
und­
für Chrome und Firefox unter Mac unter Windows (10) werden die Zeichen beibehalten und harte Bindestriche in Notepad und unsichtbare weiche Bindestriche in Anwendungen eingefügt, die sie unterstützen. IE (win7) fügt auch in IE10 immer Bindestriche ein, und Safari (Mac) kopiert auf eine Weise, die in einigen Anwendungen (z. B. MS Word) als Bindestriche eingefügt wird, in anderen jedoch nicht­
und­
in allen Browsern mit Ausnahme des IE, der nur exakten kopierten und eingefügten Übereinstimmungen entspricht (sogar bis zu IE11).­
mit normal eingegebenen Wörtern. Ab 2017 scheint es nicht mehr mit Wörtern zu übereinstimmen, die enthalten­
. Yandex scheint dasselbe zu sein. Bing und Baidu scheinen auch nicht zusammen zu passen.Probier es aus
Für aktuelle Live-Tests finden Sie hier einige Beispiele für eindeutige Wörter mit weichen Bindestrichen.
­
-confumbabbl­ication­ism
- Confumbabblicationism<wbr>
-donfounbabbl<wbr>ication<wbr>ism
. Diese Site wird<wbr/>
aus der Ausgabe entfernt. Hier ist ein jsbin.com-Snippet zum Testen .­
-eonfulbabbl­ication­ism
- eonfulbabblicationismHier gibt es keine schüchternen Bindestriche (dies dient zum Kopieren und Einfügen in Find-on-Page-Tests; so geschrieben, dass die Suchmaschinentests nicht unterbrochen werden):
ZZZconfumbabblicationismZZZdonfounbabblicationismZZZeonfulbabblicationismZZZ
Browserübergreifend anzeigen
Erfolg: Anzeige als normales Wort, außer dort, wo es brechen soll, wenn es an der angegebenen Stelle bricht und getrennt wird.
Fehler: Wird ungewöhnlich angezeigt oder kann nicht an der vorgesehenen Stelle unterbrochen werden.
­
Erfolg,<wbr>
Erfolg,­
Erfolg­
Erfolg,<wbr>
Erfolg,­
Erfolg­
Erfolg, noch<wbr>
nicht getestet ,­
Erfolg­
Erfolg,<wbr>
Misserfolg (Unterbrechung, aber kein Bindestrich),­
Erfolg­
Erfolg,<wbr>
scheitert (keine Pause),­
Erfolg­
Erfolg,<wbr>
scheitert (keine Pause),­
Erfolgword-wrap
. Manchmal scheinen sie alle zu funktionieren. Noch kein klares Muster gefunden, warum.­
Erfolg,<wbr>
Erfolg,­
ErfolgÜber Browser kopieren und einfügen
Erfolg: Kopieren und Einfügen des gesamten Wortes, ohne Trennzeichen. (getestet auf dem Mac beim Einfügen in die Browsersuche, MS Word 2011 und Sublime Text)
Fehler: Einfügen mit einem Bindestrich, einem Leerzeichen, einem Zeilenumbruch oder mit Junk-Zeichen.
­
Erfolg,<wbr>
Erfolg,­
Erfolg­
Erfolg,<wbr>
Erfolg,­
Erfolg­
Fehler in MS Word (alle als Bindestriche einfügen), Erfolg in anderen Anwendungen<wbr>
fehlschlagen ,­
Fehler in MS Word (alle als Bindestriche einfügen), Erfolg in anderen Anwendungen­
nicht alle Pasten als Bindestriche,<wbr>
versagen ,­
scheitern Pasten alle als Bindestriche­
Fail- Pasten alle als Bindestriche,<wbr>
Fail ,­
Fail- Pasten alle als Bindestriche­
nicht alle Pasten als Bindestriche,<wbr>
versagen ,­
scheitern Pasten alle als BindestricheSuchmaschinen-Matching
Aktualisiert im November 2017.
<wbr>
Nicht getestet, da das CMS von StackOverflow es entfernt hat.Erfolg: Suchen im gesamten, nicht getrennten Wort finden diese Seite.
Fehler: Suchmaschinen finden diese Seite nur bei der Suche nach den gebrochenen Segmenten der Wörter oder einem Wort mit Bindestrichen.
­
schlägt fehl, ist­
erfolgreich­
schlägt fehl,­
schlägt fehl­
schlägt fehl,­
schlägt fehl (kann Fragmente in längeren Zeichenfolgen abgleichen, aber nicht die Wörter für sich, die ein­
oder enthalten­
)­
schlägt fehl, ist­
erfolgreich (obwohl es möglich ist, dass es mit einem String-Fragment wie Baidu übereinstimmt, nicht 100% sicher)Suchen Sie auf einer Seite in verschiedenen Browsern
Erfolg und Misserfolg als Suchmaschinen-Matching.
­
Erfolg,<wbr>
Erfolg,­
Erfolg­
Erfolg,<wbr>
Erfolg,­
Erfolg­
Erfolg,<wbr>
Erfolg,­
Erfolg­
fehlgeschlagene Übereinstimmungen, wenn beide schüchterne Bindestriche enthalten,<wbr>
Erfolg, nur­
fehlgeschlagene Übereinstimmungen, wenn beide schüchterne Bindestriche enthalten­
fehlgeschlagene Übereinstimmungen, wenn beide schüchterne Bindestriche enthalten,<wbr>
Erfolg, nur­
fehlgeschlagene Übereinstimmungen, wenn beide schüchterne Bindestriche enthalten­
fehlgeschlagene Übereinstimmungen, wenn beide schüchterne Bindestriche enthalten,<wbr>
Erfolg, nur­
fehlgeschlagene Übereinstimmungen, wenn beide schüchterne Bindestriche enthaltenquelle
<wbr/>
funktioniert in Firefox und Chrome. (Und um ehrlich zu sein, ich vermute, dass es sogar im Februar war, zumindest unter Windows.)<wbr/>
funktioniert in beiden. Bitte beachten Sie, dass das<wbr>
Element bei einer Unterbrechung keinen Bindestrich hinzufügen soll . Mit anderen Worten,<wbr/>
und­
sollen nicht das Gleiche tun .<wbr/>
wenn man es betrachtet, sieht es so aus, als hätte das CMS von SE das s aus dem endgültigen Markup entfernt, während es im Quellcode bleibt. Verdammt du SE! Wird bearbeiten ..­
und­
? Sobald sie das DOM erreichen, sind sie buchstäblich gleich ; Nur im HTML-Tokenizer unterscheiden sie sich überhaupt.Es wird ständig versucht, die Silbentrennung in CSS3 zu standardisieren .
Einige moderne Browser, insbesondere Safari und Firefox, unterstützen dies bereits. Hier finden Sie eine gute und aktuelle Referenz zur Browserunterstützung .
Sobald die CSS-Silbentrennung universell implementiert ist, ist dies die beste Lösung. In der Zwischenzeit kann ich Hyphenator empfehlen - ein JS-Skript, das herausfindet, wie Sie Ihren Text auf die für einen bestimmten Browser am besten geeignete Weise trennen können.
Silbentrenner:
­
in die meisten anderen Browser ein,Ich habe es benutzt und es funktioniert großartig!
quelle
Ich benutze
­
, bei Bedarf manuell eingefügt.Ich finde es immer schade, dass Leute keine Techniken verwenden, weil es einen - vielleicht alten oder seltsamen - Browser gibt, der sie nicht so behandelt, wie sie angegeben wurden. Ich habe festgestellt, dass dies
­
sowohl in den neuesten Internet Explorer- als auch in den Firefox-Browsern ordnungsgemäß funktioniert. Das sollte ausreichen. Sie können eine Browserüberprüfung einschließen, die Personen auffordert, etwas ausgereiftes zu verwenden oder auf eigenes Risiko fortzufahren, wenn sie mit einem seltsamen Browser herumkommen.Die Silbenbildung ist nicht so einfach und ich kann nicht empfehlen, sie Javascript zu überlassen . Es ist ein sprachspezifisches Thema und muss möglicherweise vom Deskman sorgfältig überarbeitet werden, wenn Sie nicht möchten, dass Ihr Text dadurch irritiert wird. Einige Sprachen wie Deutsch bilden zusammengesetzte Wörter und führen wahrscheinlich zu Zersetzungsproblemen. ZB
Spargelder
( keimsparendes Geld, pl.) Kann nach Silbenregeln an zwei Stellen eingewickelt werden (Spar-gel-der
). Wenn Sie es jedoch in die zweite Position einwickeln, wird der erste Teil alsSpargel-
( Keim- Spargel) angezeigt, wodurch ein völlig irreführendes Konzept im Kopf des Lesers aktiviert wird und daher vermieden werden sollte.Und was ist mit der Saite
Wachstube
? Es könnte entweder "Wachraum" (Wach-stu-be
) oder "Wachsröhre" (Wachs-tu-be
) bedeuten . Möglicherweise finden Sie auch andere Beispiele in anderen Sprachen. Sie sollten darauf abzielen, eine Umgebung bereitzustellen, in der der Deskman bei der Erstellung eines gut silbigen Textes unterstützt werden kann, wobei jedes kritische Wort Korrektur gelesen wird.quelle
Es ist sehr wichtig zu bemerken , dass, wie von HTML5,
<wbr>
und­
soll nicht die gleiche Sache tun !Weiche Bindestriche
­
ist ein weicher Bindestrich, dh U + 00AD: SOFT HYPHEN. Beispielsweise,könnte gerendert werden als
oder als
Ab heute funktionieren weiche Bindestriche in Firefox, Chrome und Internet Explorer.
Das
wbr
ElementDas
wbr
Element ist eine Wortumbruchmöglichkeit, bei der bei einem Zeilenumbruch kein Bindestrich angezeigt wird. Beispielsweise,könnte gerendert werden als
oder als
Ab heute funktioniert dieses Element in Firefox und Chrome.
quelle
Die Raumentität mit der Breite Null kann anstelle von
<wbr>
Tags auf praktisch jeder Plattform zuverlässig verwendet werden.Ebenfalls nützlich ist das Wort Joiner- Entität, mit dem eine Unterbrechung verhindert werden kann. (Fügen Sie zwischen die einzelnen Zeichen eines Wortes ein, außer dort, wo Sie die Unterbrechung wünschen.)
Mit den beiden können Sie alles tun.
quelle
​
) ist genau das, was<wbr>
(iirc; es ist schon eine Weile her) getan hat, aber besser unterstützt wird (universell, heutzutage). Es ist genau das, was ich suchte, da es sich nicht einen Bindestrich gebrochen Worte hinzufügen, so dass zB durch Komma getrennte Werte wickeln , wenn sie durch einen Laufs/,/,\​/g
Ersatz.Dies ist eine Crossbrowser-Lösung, die ich mir vor einiger Zeit angesehen habe und die auf dem Client ausgeführt wird und jQuery verwendet:
quelle
Ich schlage vor, zu verwenden
wbr
, damit der Code wie folgt geschrieben werden kann:Es führt kein Leerzeichen zwischen Zeichen, während
­
Leerzeichen, die durch Zeilenumbrüche entstehen, nicht gestoppt werden.quelle
Ich habe in einigen Desktop- und mobilen Browsern erfolgreich Unicode-Zeichen mit weichen Bindestrichen verwendet , um das Problem zu lösen.
Das Unicode-Symbol ist
\u00AD
und ist ziemlich einfach in Python-Unicode-Zeichenfolgen wie einzufügens = u'Языки и методы програм\u00ADми\u00ADро\u00ADва\u00ADния'
.Eine andere Lösung besteht darin, das Unicode-Zeichen selbst einzufügen, und die Quellzeichenfolge sieht in Editoren wie Sublime Text, Kate, Geany usw. ganz normal aus (der Cursor fühlt sich jedoch als unsichtbares Symbol an).
Hex-Editoren von internen Tools können diese Aufgabe einfach automatisieren.
Ein einfacher Kludge besteht darin, seltene und sichtbare Zeichen wie zu verwenden
¦
, die einfach zu kopieren und einzufügen sind, und sie durch einen weichen Bindestrich zu ersetzen, indem Sie z$(document).ready(...)
. B. ein Frontend-Skript verwenden . Quellcode wies = u'Языки и методы про¦гра¦м¦ми¦ро¦ва¦ния'.replace('¦', u'\u00AD')
ist leichter zu lesen alss = u'Языки и методы про\u00ADг\u00ADра\u00ADм\u00ADми\u00ADро\u00ADва\u00ADния'
.quelle
Manchmal scheinen Webbrowser verzeihender zu sein, wenn Sie die Unicode-Zeichenfolge
­
anstelle der­
Entität verwenden.quelle
Wenn Sie Pech haben und dennoch JSF 1 verwenden müssen, besteht die einzige Lösung darin, & # 173;, & schüchtern; funktioniert nicht.
quelle
<wbr> und & schüchtern;
Heute können Sie beide verwenden.
<wbr> wird verwendet, um zu brechen und keine weiteren Informationen einzugeben .
Beispiel, um Links anzuzeigen:
&schüchtern; Bei Bedarf wird der Text an dieser Stelle unterbrochen und ein Bindestrich hinzugefügt.
Beispiel:
"Ich bin & schüchtern; pos & schüchtern; sí & schüchtern; vel pa & schüchtern; ra um ho & schüchtern; mem a & schüchtern; pren & schüchtern; der a & schüchtern; qui & schüchtern; lo que ele acha que já sa & schüchtern; sein."
quelle