2016-04-22 16 views
22

Ich verwende Bootstrap. Lassen Sie uns sagen, dass ich Text haben, der wie folgt aussieht:Brechen Sie nicht-zusammengesetzte zusammengesetzte Wörter an der Wortgrenze

„Stackoverflow“

Kann ich irgendwie automatisch sicher, dass es so bricht, wenn der Text nicht den Behälter passt:

"Stack
-overflow"

statt:

"Stackov
-erflow"

mit HTML/CSS?

+0

ich denke nicht, es gibt keine Option für diese –

+5

Muss es nicht 'Stack-' und 'Überlauf' sein? Auf Holländisch ist das der richtige Weg, weiß nicht in Englisch btw ... –

+9

Vielleicht ist es erwähnenswert, dass, wenn Sie den Namen von SO in einem Dokument schreiben, es eigentlich "Stack Overflow" (mit einem Leerzeichen) heißt, nicht 'Stackoverflow';) – Kai

Antwort

46

können Sie fügen ­ (soft Bindestrich)

#box { 
 
    font-size:14px; 
 
    font-family:courier; 
 
    width:90px; 
 
    background:yellow; 
 
}
<div id="box">Stack&shy;overflow</div>

+16

Wenn Sie '­' nicht verwenden können, weil Sie keine Variante von (X) HTML (XML, Markdown, Klartext ...) verwenden, können Sie das entsprechende Unicode Zeichen U + 00AD ('& # x00ad;' in XML). –

9

Nein, für ein Dokument "Stackoverflow" ist ein einzelnes Wort. Wenn Sie eine CSS-Eigenschaft verwenden, um das Wort zu brechen, wird es entsprechend dem verfügbaren Platz unterbrochen.

Sie müssen es definieren, wenn Sie es von einem bestimmten Punkt trennen möchten.

Sie können Stack<wbr>overflow oder Stack-overflow verwenden.

Wenn Stack<wbr>overflow verwendet wird, wird es bei <wbr> unterbrochen.

p.test1 { 
 
    width: 60px; 
 
    border: 1px solid #000000; 
 
}
<p class="test1">Stack<wbr>overflow</p>


OR, wenn Stack-overflow mit und CSS-Eigenschaft mit word-break: keep-all; dann wird es auf Bindestriche unterteilt werden:

p.test1 { 
 
    width: 60px; 
 
    border: 1px solid #000000; 
 
    word-break: keep-all; 
 
}
<p class="test1">Stack-overflow</p>

Aber Sie müssen einen von ihnen definieren.

+0

'' Bindestrich nicht das Wort zu brechen, ich glaube nicht, dass gefragt wurde. – Bergi

+0

Mit dem Beispiel mit dem Bindestrich ('-') erscheint der Strich, auch wenn das Wort passt. –

+0

@bergi das ist, warum ich eine andere Antwort gegeben habe auch –

21

Sie können den <wbr> tag:

p { 
 
    width: 60px; 
 
    border: 1px solid black; 
 
}
<p>Stack<wbr>overflow</p>

+12

Dies trennt nicht das Wort brechen, ich glaube nicht, das ist, was das OP sucht. – Bergi

+0

Sie können einen Bindestrich am wbr-Tag mit css hinzufügen. – kojiro

2

Sie können mit Null-Breite Raum, &#8203;. Geben Sie einfach Stack&#8203;overflow in HTML ein.

+4

Diese Lösung ist wirklich die falsche. Es bricht zum Beispiel die Suche. – Bergi

+5

Bekommt nicht mehr Hacky als das. –

4

Wenn Sie ein spezifischen Wort brechen wollen, dann sind die Antworten funktionieren gegeben - eine unsichtbare Pause von einer Art einfügen . Wie gesagt, schädigt es Suchergebnisse, aber nicht so schlimm, wie Sie denken.

Wenn Sie alle zusammengesetzte Begriffe brechen wollen, die Verpackung benötigen, ohne manuell durchmachen und die Überprüfung, dann gibt es keine Möglichkeit, diese zu tun, weil Sie kontextsensitive englische Sprache Parsing müssen, was bedeutet, Sie brauchen ein menschliches Gehirn tut es.

Überlegen Sie, wie Sie die folgenden Zeichenketten brechen würde:

lowrateslender.com 
musictoyourears.com 
heresearch.com 
nakedsnow.com 
picturespain.com 
catspaying.net 
attackshoes.com 
williamsharp.net 
andreward.net 
goalsnow.net 
hesstruck.net 
artistrap.com 
buildingskill.com 
bearspray.com 
atticsweep.com 
matthewhale.com 
singershaven.com 
shoesworn.com 
sinuscatscan.com 
cometart.com 
monkeyslap.com 
scriptshack.com 
nasalbum.com 
moviesick.com 
arizonasparesort.com 
privateshot.com 
nationsprinting.com 
importcarshow.com 

(Kopie kleistert von einer Google-Suche nach „mehrdeutig Domain-Namen“)

... auch gegeben ein Wörterbuch ganze Wörter zu identifizieren in diesen begriffen, und an diesen bereichen brechende räume einzufügen, wäre es ein toss-up, ob man diese worte als "import-car-show" oder "import-cars-how" aufteilen würde.

Eine der Hauptfähigkeiten für das Programmieren ist das Identifizieren von Algorithmen, die Verarbeitung in natürlicher Sprache erfordern und sich nur für einen "gut genug" -Algorithmus entscheiden, anstatt Zeit dafür zu verschwenden. Dies ist ein solcher Fall.

+0

Nun, genau das ist '­' für gemacht. Es bricht die Suche nicht ab. – Bergi

+0

@Bergi Welchen Algorithmus verwenden Sie, um dies an den richtigen Stellen einzufügen? Sie haben das gleiche Problem. Domänen enthalten nicht wirklich '­'. –

+0

'­' wird von den * authors * in die HTML-Quelle eingefügt, nicht von den Word-Wrapping-Algorithmen. – Bergi

Verwandte Themen