2016-06-18 35 views
11

sığacak sadece tam sözcükleri gösteriyor ki makaleCSS/JS buldum konteyner

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

ve bunu kaba uyuyorsa Tüm kelimeyi görüntülemek için zorlamak için nasıl merak ediyorum:

örn.

some long sentence 
o yüzden bunu gizlemek istediğiniz ve sadece göstermek uymuyor

some long s... 

kelime sentence olarak gösterilebilir

:

some long 

benim şimdiki css (ekler ...)

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

× biz cümlede kelimelerin karakter sınırlaması mı bahsediyoruz? – perkes456

+0

Belki de taşmayı kullanmayı deneyebilirsiniz: gizli? – torus

+0

JavaScript'e izin eklendi? –

cevap

0

Metni belirli bir karakter sayısına sınırlandırabilirsiniz. Sonra bir boşluk karakterinin son indisini bulmalı ve bu endeksi kullanarak metni tekrar sınırlandırmalısınız. Simply

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

izin verilir, bu durumda piksel uzunluğu dize almalıyız, sadece chars – Tony

0

bu deneyin:

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

sadece bu kodu kullanabilirsiniz kelime sayısını sınırlamak isterseniz: Burada

bazı örnek kod metni taşmasına izin ver

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

işe yaramaz gibi görünüyor http://jsbin.com/wunadoyewo/edit çalışmıyor? html, css, output – Tony

+0

@Tony sağladı jsbin bağlantısı tarayıcımda yani kromda gayet iyi çalışıyor. – frnt

+0

FIrefox – Tony

0

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

Bu deneyebilirsiniz:

.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>
max-height burada: = line-height: <number-of-lines>

+3

Anlatabildiğim kadarıyla, bu etki için aslında "text-overflow: ellipsis" 'e ihtiyacınız yoktur (ve "word-wrap: break-word" ün tek etkisi bile, ilk kelimenin bile metin kaplara sığmaz, bir karakterin ortasında kesilmez. –