Как сказал эйканал, вы не можете точно предсказать пользовательские настройки пользователя. Единственное, что вы можете сделать, - это измерить элемент, имеющий две строки текста (поместить небольшое количество текста в элемент [n-off-screen] div без заполнения, и измерить высота), и установите переполнение скрытым.
Есть несколько трюков, которые вы могли бы сделать, чтобы получить многоточие, но я бы абсолютно не рекомендовал. Вы можете установить абсолютное положение div внутри родительского элемента (с относительным позиционированием) и установить для него значение bottom: 0, right: 0 с тем же цветом фона, что и у родительского элемента, таким образом перекрывая последний бит текста в элементе.
<style type="text/css">
#parent {
position:relative;
overflow: hidden;
width: 230px;
height: auto;
background: #f1f1f1;
}
.ellipsis {
position: absolute;
right: 0;
bottom: 0;
background: #f1f1f1;
}
</style>
<div id="parent">
This would be the text that was inserted by the PHP code you mentioned above
<div class="ellipsis">...</div>
</div>
Затем, чтобы Javascript получил высоту, примите это за псевдокод ...
<script type="text/javascript">
window.onload = function() {
var textDiv = document.createElement('div');
textDiv.style = 'padding:0;position:absolute;left:-500px;top:-500px;';
textDiv.innerHTML = 'Getting<br>Height';
document.body.appendChild(textDiv);
var textHeight = (textDiv.offsetHeight || textDiv.clientHeight);
document.body.removeChild(textDiv);
document.getElementById('parent').style.height = textHeight;
}
</script>
Конечно, если вы используете инфраструктуру Javascript (Mootools, jQuery), вы можете изменить способ создания элемента и задать атрибуты, но это должно, по большей части, достичь чего-то очень близкого к тому, что вы ищете, с минимальные ковыряния.
Вы также хотели бы установить высоту всех элементов с классом многоточия равной половине высоты, полученной из JavaScript.
Это все, что я получил, чувак. Надеюсь, поможет. : -)