2016-06-18 18 views
11

ho trovato che l'articoloCSS/JS mostrare solo le parole intere che si adattano al contenitore

https://justmarkup.com/log/2015/07/dealing-with-long-words-in-css/

e mi chiedo come forzare per visualizzare una parola intera se si adatta al contenitore:

ad es.

some long sentence 

può essere visualizzato come

some long s... 

la parola sentence non va bene così voglio nasconderlo e mostrare solo:

some long 

mio css corrente (si aggiunge la ...)

.short { 
    max-width: 250px; 
    overflow: hidden; 
    text-overflow: ellipsis; 
    white-space: nowrap; 
} 
+0

stiamo parlando limitazione carattere di parole frase? – perkes456

+0

Forse potresti provare a usare l'overflow: nascosto? – torus

+0

JavaScript consentito? –

risposta

0

È possibile limitare il testo a un determinato numero di caratteri. Quindi devi trovare l'ultimo indice di un carattere di spazio e limitare nuovamente il testo usando questo indice.

Ecco qualche esempio di codice:

function limitText(text, maxLength) { 
    if (text.length <= maxLength) { 
     return; 
    } 

    text = text.substr(0, maxLength); 

    var lastSpace = text.lastIndexOf(' '); 

    return text.substr(0, lastSpace) + '...'; 
} 

limitText('Lorem ipsum dolor sit amet, consectetuer adipiscing elit.', 20); 

Se si desidera solo a limitare il numero di parole è possibile utilizzare questo codice:

var maxWords = 4; 
var text = 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit.'; 
var newText = text.split(' ').slice(0, maxWords).join(' '); 
+0

in questo caso dovremmo ottenere la lunghezza della stringa in pixel, non solo il conteggio dei caratteri – Tony

0

Prova questa,

div{ 
white-space: nowrap; 
width: 70px; 
overflow: hidden; 
} 
div > p{ 
white-space: nowrap; 
width: 70px; 
overflow: hidden; 
} 

<div><p>some long sentences</p></div> 
<div>some long sentences</div> 
+0

sembra che non funzioni http://jsbin.com/wunadoyewo/edit? html, css, output – Tony

+0

@Tony ha fornito jsbin link funziona perfettamente bene nel mio browser ie chrome. – frnt

+0

Stavo usando FIrefox – Tony

0

Semplicemente lascia che il testo trabocchi

.short { 
    max-width: 250px; 
    height: 1em; 
    overflow: hidden; 
    position: relative; 
} 
9

Si può provare questo:

.element{ 
 
    display: block; 
 
    width: 100px; 
 
    overflow: hidden; 
 
    word-wrap: break-word; 
 
    text-overflow: ellipsis; 
 
    max-height: 16px; 
 
    line-height: 16px; 
 
}
<div class="element">some long string</div>

dove max-height: = line-height: × <number-of-lines>

+3

Per quanto ne so, non hai realmente bisogno di "overflow del testo: ellissi" per questo effetto (e l'unico effetto di "word-wrap: break-word" è quello di garantire che, se anche la prima parola di il testo non entra nel contenitore, non verrà tagliato nel mezzo di un personaggio). –

Problemi correlati