2013-05-14 2 views
1

У меня есть контейнер, в котором сообщение получает эхо, сообщение, в котором он сам не имеет фиксированного размера, сгенерированный пользователем, может случиться, что если строка текста тоже долгое время, он может перетекать в его контейнер с разрывом дизайна.Остановить текст из-за запуска его контейнера

Есть ли способ (надеюсь, только с CSS, хотя js в порядке), чтобы сделать обрезку текста и оставить его с ..., тогда я могу поместите ссылку на текст на другой странице.

Вы можете, очевидно, прекратить это, используя overflow:hidden, но я бы хотел, чтобы более простой подход, а не просто резка его прямо. Кажется, я вспоминаю про что-то вроде этого с css3, но из-за моей жизни не могу понять, как это называется.

Ive сделал jsfiddle проблемы здесь - http://jsfiddle.net/6Fk7B/

+0

Текстовое переполнение CSS: многоточие в новых браузерах работает. – dandavis

+0

Хороший вопрос/идея! Я никогда не думал о CSS-решении. Но создал несколько JavaScript-решений ... – powtac

+0

возможно дублировать, http: // stackoverflow.com/questions/536814/insert-ellipsis-in-html-tag-if-content-too-wide обработка с помощью только css не позволит вам сделать ссылку на многоточие. –

ответ

1
text-overflow: ellipsis; 
overflow: hidden; 
white-space: nowrap; 

Это должно сделать это для вас. Все должно быть включено.

Вы можете также включать в себя следующие префиксы браузеров:

-ms-text-overflow: ellipsis; 
-o-text-overflow: ellipsis; 

Это не будет совершенным во всех браузерах, но это должно быть хорошо для большинства: http://caniuse.com/#feat=text-overflow

0

Использование JavaScript вы могли достигните этого, используя substring. jQuery не требуется, но это немного упрощает.

var myText = $('.myBox').text(), 
maxLength = 250, 
more = '...'; 

if (myText.length > maxLength) { 
    myText = myText.substring(0, 250); 

    $('.myBox p').text(myText + more); 
} 

Смотрите мой пример пример: http://jsfiddle.net/clrux/6Fk7B/14/

0

Является ли это разумной отправной точкой для вас?

Fiddle: http://jsfiddle.net/QkugN/

В основном вы добавляете все содержимое в div и скрыть его, используя обычный метод overflow:hidden. Вы также добавляете вкладку, которая при наведении отображает остальную часть содержимого. Если вы используете абсолютное позиционирование для состояния мыши, содержимое моментально будет удалено из потока и ему будет разрешено накладывать любые окружающие материалы. Возможно, это не полное решение, но это чистое направление CSS, которое вы могли бы изучить.

Бит, который занимается бизнесом, является селектором General Sibling «~» (тильда). Поддержка этого довольно прочная с современными браузерами.

Смежные вопросы