Обнаружил странную особенность Safari, если задавать высоту элемента и потом запросить ее, то происходит какая-то магия:
$('.js--post-grid').height(400);
console.log($('.js--post-grid').first().height()); // = 0
console.log($('.js--post-grid').last().height()); // = 0
setTimeout(function(){
console.log($('.js--post-grid').first().height()); // = 23
},1);
setTimeout(function(){
console.log($('.js--post-grid').first().height()); // = 23
},2);
setTimeout(function(){
console.log($('.js--post-grid').first().height()); // = 23
},10);
setTimeout(function(){
console.log($('.js--post-grid').first().height()); // = 201
},100);
setTimeout(function(){
console.log($('.js--post-grid').first().height()); // = 400
},1000);
Высота зависит от времени в которое ее запросили, как так?
Пример, смотрите консоль.
Проверял в Safari 9.1 и Safari 9.1.1