JSFiddle - React, Tailwind, and code Playground

HTML

<div id="text">Что впервые его трактата о пределах добра и т.д – написание. Руку при оценке качества восприятия макета. Шрифтов, абзацев, отступов и т.д просмотра шрифтов, абзацев отступов. Знает, что такое текст-рыба lorem буквы встречаются. Сыграет на кириллический контент – написание символов на сайтах. Кириллице значительно различается написание символов на сайтах и по сей день рыбы. Лучше использовать при оценке качества восприятия макета языками, использующими латинский алфавит.</div>

CSS

#text {
    max-width: 300px;
}
#text span {
    display: inline-block;
    white-space: nowrap;
    line-height: 20px;
    margin: 0;
}

JavaScript

var $text = $('#text');
var $span = $('<span/>');
var words = $text.text().split(' ');
var str = '';
$text.empty().append($span);

const WINDOW_HEIGHT = 79;
const MAX_WIDTH = $text.width();
const LINE_HEIGHT = parseInt($span.css('lineHeight'));
const LINES_IN_WINDOW = Math.floor(WINDOW_HEIGHT / LINE_HEIGHT);
const MARGIN = WINDOW_HEIGHT - LINES_IN_WINDOW * LINE_HEIGHT;

for (var i = 0, l = words.length; i < l; i++) {
    var $line = $span.clone();
    str += words[i];
    $span.text(str);
    if ($span.width() > MAX_WIDTH) {
        $line.appendTo($text);
        str = words[i];
        $span.text(str);
    }
    str += ' ';
}
$span.appendTo($text);

$text.children('span:nth-child('+ LINES_IN_WINDOW +'n)').css('marginBottom', MARGIN);