2016-06-18 12 views
11

tôi đã tìm thấy rằng bài viếtCSS/JS chỉ hiển thị toàn bộ từ phù hợp để container

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

và tôi tự hỏi làm thế nào để buộc để hiển thị toàn bộ một từ nếu nó phù hợp với container:

ví dụ

some long sentence 

nó có thể được hiển thị như

some long s... 

từ sentence không phù hợp vì vậy tôi muốn giấu nó và chỉ hiển thị:

some long 

css hiện tại của tôi (nó thêm ...)

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

Có phải chúng ta nói về giới hạn ký tự của từ trong câu? – perkes456

+0

Có lẽ bạn có thể thử sử dụng overflow: hidden? – torus

+0

JavaScript được cho phép? –

Trả lời

0

Bạn có thể giới hạn văn bản thành một số ký tự nhất định. Sau đó, bạn phải tìm chỉ mục cuối cùng của ký tự khoảng trắng và giới hạn văn bản một lần nữa bằng chỉ mục này.

Dưới đây là một số mã ví dụ:

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

Nếu bạn chỉ muốn giới hạn số lượng từ bạn có thể sử dụng mã này:

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

trong trường hợp đó có chúng tôi sẽ nhận được độ dài chuỗi bằng pixel, không chỉ các ký tự đếm – Tony

0

Hãy thử điều này,

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

trông giống như nó không hoạt động http://jsbin.com/wunadoyewo/edit? html, css, output – Tony

+0

@Tony cung cấp liên kết jsbin đang hoạt động hoàn hảo tốt trong trình duyệt của tôi, tức là chrome. – frnt

+0

Tôi đã sử dụng Firefox – Tony

0

Simply hãy tràn văn bản

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

Bạn có thể thử này:

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

nơi max-height: = line-height: × <number-of-lines>

+3

Theo như tôi có thể nói, bạn không thực sự cần 'text-overflow: ellipsis' cho hiệu ứng này (và chỉ có hiệu lực của 'word-wrap: break-word' là để đảm bảo rằng, nếu ngay cả những từ đầu tiên của văn bản không vừa trong vùng chứa, nó sẽ không bị cắt ở giữa ký tự). –

Các vấn đề liên quan