2016-06-18 14 views
11

Znalazłem ten artykułCSS/JS pokazać tylko całe słowa, które pasują do pojemnika

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

i zastanawiam się, jak zmusić, aby wyświetlić całe słowo, czy pasuje do kontenera:

np.

some long sentence 

może być wyświetlany jako

some long s... 

słowo sentence nie pasuje więc chcę go ukryć i pokazać tylko:

some long 

mój obecny css (to dodaje ...)

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

Czy mówimy o ograniczeniu postaci wyrazów w zdaniu? – perkes456

+0

Być może mógłbyś spróbować użyć przepełnienia: ukryty? – torus

+0

JavaScript jest dozwolony? –

Odpowiedz

0

Możesz ograniczyć tekst do pewnej liczby znaków. Następnie musisz znaleźć ostatni indeks spacji i ograniczyć tekst ponownie za pomocą tego indeksu.

Oto niektóre przykładowy kod:

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); 

Jeśli tylko chcesz ograniczyć liczbę słów można użyć tego kodu:

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

w takim przypadku powinniśmy uzyskać długość łańcucha w pikselach, nie tylko liczba znaków: – Tony

0

spróbować tego,

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

wygląda na to, że nie działa http://jsbin.com/wunadoyewo/edit? html, css, output – Tony

+0

@ Pod warunkiem, że jsbin link działa idealnie dobrze w mojej przeglądarce tj. chrome. – frnt

+0

Użyłem FIrefoxa – Tony

0

Simply przepełnienie tekstu:

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

Można spróbować to:

.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>

gdzie max-height: = line-height: x <number-of-lines>

+3

O ile mogę powiedzieć, nie potrzebujesz do tego efektu 'text-overflow: ellipsis' (a jedynym efektem' word-wrap: break-word' jest zapewnienie, że nawet jeśli pierwsze słowo tekst nie mieści się w pojemniku, nie zostanie odcięty w środku postaci). –

Powiązane problemy