Вы можете создать копию элемента, поместить туда только один символ и получить высоту, равную высоте одной строки:
function getLineHeight(element) {
const copy = element.cloneNode();
copy.style.visibility = 'hidden';
copy.style.position = 'absolute';
copy.textContent = 'a';
element.parentNode.appendChild(copy);
const lineHeight = copy.offsetHeight;
lineHeight.remove();
return lineHeight;
}
Затем вы можете получить количество строк следующим образом:
const linesCount = Math.round(element.offsetHeight / getLineHeight(element));
Надеюсь, я ничего не пропустил.