Yahoo делает это на стороне сервера, усечение и elipsis ('...') возвращаются в HTML. Предположительно это делается для подсчета символов, и если это не вариант для вас, то серверная часть отсутствует.
Кроме overflow: hidden
Я не уверен, что CSS может помочь вам здесь. Вы можете измерить ширину содержащего элемента, используя Javascript, и обрезать текст на основе этого. Это может использоваться в сочетании с overflow:hidden;
, чтобы текстовые элементы не просто внезапно изменяли размер, но вам, возможно, придется извлечь текст и добавить временный элемент на страницу где-нибудь, чтобы выполнить измерение. В зависимости от количества усеченных элементов это может работать не очень хорошо.
Еще один слегка хакерский вариант - измерить ширину элемента, содержащего букву 'W
', затем подсчитать количество символов и усечь, если (char_count * width_of_w) > desired_width
.
Вы можете использовать text-wrap: none;
, чтобы остановить перенос текста на новые строки, хотя это свойство CSS3, и последнее, что я проверял, поддерживалось только в IE (представьте, что я потрясен, когда обнаружил это!)