Esta pregunta se etiqueta con Javascript, así que aquí está la respuesta que falta.
Puede repetir cada carácter o palabra (como en este ejemplo), mientras comprueba que la altura sea menor que la altura deseada. En cada paso de verdad, puede sobrescribir el contenido del elemento con su texto, pero sin la última palabra/carácter.
En converte este caso he convertido la cadena en una matriz y pop
en cada iteración. Esto elimina la última parte de nuestro texto, y se asegura de que el bucle no va infiniteeeee ...
/**
* Truncates the text of an element depending its height.
*
* @param {Element} element
* @param {Number} height
*/
function truncateByHeight(element, height) {
var textContent = typeof element.textContent === 'undefined' ? 'innerText' : 'textContent';
var parts = element[textContent].split(' ');
while (parts.pop() && element.clientHeight > height) {
element[textContent] = parts.join(' ');
}
}
var element = document.querySelector('.box');
truncateByHeight(element, 120);
<div class="box">Cornua naturae fulgura uno coegit quisquis ad margine? Pluvialibus umentia vultus nulli nunc pendebat speciem emicuit! Margine tonitrua caecoque iapeto. Origine levius nam. Silvas valles temperiemque forma? Ignotas tegit. Hunc ligavit: summaque freta illas invasit deerat proximus. Caelo calidis securae mentes pronaque traxit.
Caligine omnia gentes. Posset aere certis eurus titan verba unus homini ora. Sed volucres. Campos effervescere flamina illi pondus umor. Cinxit obstabatque secrevit. Ligavit: natus aberant. Indigestaque regio rapidisque carmen coegit erat discordia liquidas. Ripis nix horrifer terrae dei tepescunt ad vos regio.
Nabataeaque fronde pluviaque vos terra tellure flexi. Neu habendum poena locoque ne. Dedit locoque nunc nebulas. Mentisque liquidum summaque porrexerat cepit. Litem mare. Surgere adhuc ipsa. Orbem hanc volucres iapeto habentem. Dissociata otia inminet nubibus passim erant iners. Semina praecipites reparabat spectent fuerat.</div>
no trabajar en cromo: http://jsfiddle.net/dBxes/ –
@ZainShaikh, arregló su violín: http://jsfiddle.net/dBxes/7/.En esta respuesta, el último estilo es incorrecto, debe ser 'white-space: nowrap;' –
@VsevolodKrasnov su violín no ajusta las líneas a una altura de 150px. –