JSFiddle - React, Tailwind, and code Playground
HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
<ul>
<li>Lorem ipsum dolor sit amet</li>
<li>Quisque tincidunt ipsum ac ante commodo non.</li>
<li>Lorem</li>
<li>Lorem ipsum dolor sit amet</li>
<li>Lorem</li>
<li>Ipsum</li>
<li style="width: 150px">Quisque tincidunt ipsum ac ante commodo non suscipit tortor volutpat.</li>
<li>Quisque tincidunt ipsum</li>
<li>Lorem ipsum dolor sit amet</li>
<li>Lorem ipsum dolor sit amet logoped</li>
<li>Lorem</li>
</ul>
</body>
</html>
CSS
ul {
margin: 0;
padding: 0;
width: 440px;
list-style: none;
}
li {
float: left;
width:100px;
margin: 5px;
background: orange;
}
JavaScript
var li = $('li'); /* Получаем все элементы списка */
var line;
var heights = []; // Массив высот линии
var startY = li.eq(0).position().top; // Начало отсчета
/* Проходимся по элементам */
for (var i = 0, max = li.length; i < max; i++) {
var rowLi = li.eq(i); /* Получаем элемент ряда */
var position = rowLi.position(); // Находим смещение
if (position.top != startY && i) {
line.css('height', Math.max.apply(this, heights)); /* Присваем ряду максимальную высоту */
startY = li.eq(i).position().top; // новое начало отсчета
heights = []; // обнуляем массив высот
line = null; // и массив элементов
};
line = (line)? line.add(rowLi) : rowLi;
heights.push(rowLi.height());
}
line.css('height', Math.max.apply(this, heights)); /* Присваем ряду максимальную высоту */