Мне очень нравится линейный зажим, но пока нет поддержки Firefox .. поэтому я иду с математическим кальком и просто скрываю переполнение
.body-content.body-overflow-hidden h5 {
max-height: 62px;/* font-size * line-height * lines-to-show(4 in this case) 63px if you go with jquery */
overflow: hidden;
}
.body-content h5 {
font-size: 14px; /* need to know this*/
line-height:1,1; /*and this*/
}
теперь допустим, что вы хотите удалить и добавить этот класс через jQuery со ссылкой, вам потребуется дополнительный пиксель, чтобы максимальная высота составляла 63 пикселя, потому что вам нужно каждый раз проверять, если высота больше 62px, но в случае 4 строк вы получите ложное значение true, поэтому дополнительный пиксель исправит это и не создаст никаких дополнительных проблем
Я вставлю coffeescript для этого просто в качестве примера, использую пару ссылок, которые по умолчанию скрыты, с классами read-more и read-less, он удалит те, которые переполнению не нужны, и удалить классы переполнения тела
jQuery ->
$('.read-more').each ->
if $(this).parent().find("h5").height() < 63
$(this).parent().removeClass("body-overflow-hidden").find(".read-less").remove()
$(this).remove()
else
$(this).show()
$('.read-more').click (event) ->
event.preventDefault()
$(this).parent().removeClass("body-overflow-hidden")
$(this).hide()
$(this).parent().find('.read-less').show()
$('.read-less').click (event) ->
event.preventDefault()
$(this).parent().addClass("body-overflow-hidden")
$(this).hide()
$(this).parent().find('.read-more').show()