2016-04-22 11 views
22

Sto usando Bootstrap. Diciamo che ho il testo che assomiglia a questo:Interrompi parole composte non trattate al contorno della parola

"StackOverflow"

Posso in qualche modo rende automaticamente sicuri che si rompe in questo modo se il testo non si adatta al contenitore:

"Stack
-overflow"

invece di:

"Stackov
-erflow"

con HTML/CSS?

+0

Non penso ci sia alcuna opzione per questo –

+5

Non deve essere 'Stack-' e 'overflow'? In olandese è il modo corretto, non so in inglese btw ... –

+9

Potrebbe essere utile notare che se stai scrivendo il nome di SO in un documento, in realtà viene chiamato 'Stack Overflow' (con uno spazio), non 'StackOverflow';) – Kai

risposta

46

È possibile inserire ­ (trattino morbido)

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

+16

Se non puoi usare '­' perché non stai usando alcuna variante di (X) HTML (XML, Markdown, testo semplice ...) puoi usare il carattere Unicode equivalente U + 00AD ('& # x00ad;' in XML). –

9

No, per un documento "Stackoverflow" è una singola parola. Se si utilizza una proprietà CSS per rompere la parola, si interromperà in base allo spazio disponibile.

È necessario definirlo se si desidera interromperlo da un punto particolare.

È possibile utilizzare Stack<wbr>overflow o Stack-overflow.

Se si utilizza Stack<wbr>overflow, quindi sarà rotto a <wbr>.

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


O, se si utilizza Stack-overflow e utilizzando la proprietà CSS word-break: keep-all; allora sarà rotto a trattini:

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

Ma devi definirne uno.

+0

'' non sillaba la parola interruzione, non penso che sia stata richiesta. – Bergi

+0

Con l'esempio con il trattino ('-'), il trattino appare anche quando la parola si adatta. –

+0

@bergi questo è il motivo per cui ho dato un'altra risposta anche –

21

È possibile utilizzare il tag <wbr>:

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

+12

Ciò non sillaba la parola break, non penso che questo sia ciò che l'OP sta cercando. – Bergi

+0

È possibile aggiungere un trattino al tag wbr con css. – kojiro

2

È possibile utilizzare lo spazio larghezza zero, &#8203;. Digita semplicemente Stack&#8203;overflow in HTML.

+4

Questa soluzione è davvero sbagliata. Si interrompe la ricerca, per esempio. – Bergi

+5

Non ottiene più hacky di questo. –

4

Se si vuole spezzare una parola specifica, poi le risposte fornite funzionerà - inserire una pausa invisibile di qualche tipo . Fa, come sottolineato, danneggiare i risultati della ricerca, ma non così male come si potrebbe pensare.

Se si vuole spezzare tutti i termini composti che hanno bisogno di avvolgimento, senza passare manualmente attraverso e controllo, allora non c'è alcun modo per farlo, perché è necessario sensibile al contesto di lingua inglese di analisi, il che significa che è necessario un cervello umano che lo fa.

consideri come si dovrebbe rompere le seguenti stringhe:

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 

(copia-incollato da una ricerca su Google per "i nomi di dominio ambigui")

... anche dato un dizionario per identificare parole intere entro questi termini, e inserendo spazi di rottura a quei confini, sarebbe un errore se si suddividessero queste parole come, ad esempio, "import-car-show" o "import-cars-how".

Una delle principali abilità per la programmazione è l'identificazione di algoritmi che richiedono l'elaborazione del linguaggio naturale e che optano solo per un algoritmo "abbastanza buono" piuttosto che sprecare tempo su di esso. Questo è uno di questi casi.

+0

Beh, questo è esattamente ciò che è "­". Non rompe la ricerca. – Bergi

+0

@Bergi Quale algoritmo stai usando per inserirlo nel posto giusto? Si finisce con lo stesso problema. I domini non contengono intrinsecamente '­'. –

+0

'­' è inserito dagli * autori * nell'origine HTML, non dagli algoritmi di word-wrapping. – Bergi

Problemi correlati