LordGuard, лучше верить статистике личных проектов за последние 6 месяцев. Плюс, учитывать конверсию. Да и к тому же в среднестатистическом проекте (тот же интернет-магазин с дизайном по типу svyaznoy.ru) сделать поддержку IE11 весьма просто.
Максим Ленский, с учётом разной ширины, то я думаю, что-то типа такого: узнать общую ширину контейнера, потом считать, сколько занимает каждый элемент, затем складывать полученные значения друг с другом, начиная с первого элемента. Если есть переполнение строки по ширине, значит, предыдущий сложенный элемент — последний в строке, а текущий (с которого начинается переполнение) — первый в следующей.
А так я видел варианты, если заранее известны размеры элементов. Да и с помощью CSS тогда можно обойтись.
А по стилям, вот видео с телефона, но суть понятна будет. Это всё в IE11 работает как надо:
https://cloud.mail.ru/public/ADdt/RMtdkddZx
Всё на flexbox и вкрапления grid.