Здесь у вас проблема с понятием «линия». Поскольку в браузере отображается окно с заданной шириной (может быть динамическим) и текстом внутри него, строки зависят от переноса.
Например, текст: «Привет, мне нужна моя пицца сейчас» будет состоять из двух строк, если ширина действительно мала, или из одной строки, если ширины достаточно, чтобы уместиться в этот текст.
Что я имею в виду под этим, так это то, что «линия» является понятием относительно самой обертки, поэтому даже подсчет строк внутри div невозможно .
Другое дело, если ваши строки определены пользователем, с помощью перевода строки и возврата каретки, или с помощью
или чего-то еще, но если строки генерируются переносом, это происходит во время рендеринга, и у вас есть понятия не имею, как это произойдет.
Если у вас фиксированный размер шрифта, вы можете спекулировать количеством строк простым делением высоты блока / размера шрифта + пробела между строками.
Однако, если ваш текст насыщенный, он может содержать изображения и т. Д., И это не сработает.
Другое возможное решение - использовать getClientRects (у меня это сработало)
https://developer.mozilla.org/en/DOM/element.getClientRects
, который возвращает коллекцию текстовых прямоугольников:
http://help.dottoro.com/ljgupwlp.php
Надеюсь, это немного поможет, я сталкивался с этой проблемой два раза раньше, и это не так просто, как вызов функции, вы должны понимать, что означает строки, переносы, клиентские строки, текстовые прямоугольники, шрифты ...
Удачи!