2016-06-03 6 views
1

Ich fand heraus, dass Browser (ich testete nur Verhalten von Chrome) Linie bei einigen Zeichen in Worten zu brechen Text Überlauf (im Standardverhalten, also: word-wrap: normal). Ich glaube nicht, über zerbrechliche Leerzeichen, sondern über dieses konkrete Unicode-Zeichen:Was sind breakable non-whitespace Zeichen

  • Bindestrich (-)
  • weicher Bindestrich (­)
  • Bindestrich (-)
  • langer Bindestrich (-)
  • voller Breite plus/minus (+/-)
  • minus (-) So

t er fragt ...

  • Gibt es ein anderes Zeichen mit dieser Eigenschaft?
  • Warum genau diese Zeichen und keine anderen Punktierungszeichen (wie Punkt, Komma oder Schrägstrich)?
  • Ich weiß, warum Bindestriche und Bindestrich, aber warum plus und minus und nicht zum Beispiel multiplizieren (×) ??
  • Ist dieses Verhalten in allen Browsern konsistent? Standardisiert in HTML/CSS oder Unicode?

Haben Sie einen try:

<div style="width: 50px"> 
veryvery-veryvery-veryvery-veryvery 
veryvery–veryvery–veryvery–veryvery 
veryvery—veryvery—veryvery—veryvery 
veryvery­veryvery­veryvery­veryvery 
veryvery−veryvery−veryvery−veryvery 
veryvery+veryvery+veryvery+veryvery 
long 
</div> 
+0

Warum nicht Punkt oder Komma? Ich nehme an, sie mussten einen Kompromiss finden. Ich kann nur Spanisch und Englisch und Sie können keinen Text bei diesen Zeichen teilen ('One , Two'). Und Splitting bei langem Strich ist definitiv falsch in Spanisch und führt zu gebrochenen E-Books die ganze Zeit. –

Antwort

1

Breaks in HTML/CSS Text im Allgemeinen bei "soft wrap opportunities" auftreten, aber das spezifische Verhalten, um die Zeichen vorhanden solche Gelegenheit standardisiert ist nicht. Vielmehr verschiebt sich die CSS-Spezifikation auf andere Textformatierungsspezifikationen (z. B. sprachspezifische Richtlinien).

Eine beliebte generische Implementierung ist jedoch die Unicode Line Breaking Algorithm. Der Algorithmus untersucht die Unicode-Eigenschaften benachbarter Zeichen mit einem Satz von Regeln, um Haltepunkte zu erstellen, zu erzwingen oder zu sperren. Es ist nicht möglich, eine vollständige Liste einzelner Zeichen zu erstellen, die eine Unterbrechung verursachen können, da der Kontext, in dem das Zeichen angezeigt wird, ein relevanter Faktor ist.

+0

Danke, Unicode Line Breaking-Algorithmus ist wirklich eine gute Referenz. – Velda