Это кажется ошибка в визуализации в Safari заставляя столбцы переполняться (и, следовательно, обертывать) контейнер Bootstrap (возможно, какая-то ошибка округления Webkit?). Поскольку вы используете Bootstrap, вы должны иметь возможность достичь желаемого результата без использования flex:
<div class="row">
<div class="col-md-4 col-sm-6 text-center">
<div class="product">
<img src="img.jpg" alt="" class="img-responsive">
<h3>Name</h3>
<p>Description</p>
</div>
</div>
</div>
<style>
.product {
/* this is to automatically center and prevent overflow
on very narrow viewports */
display: inline-block;
max-width: 100%;
}
</style>
Но! Теперь проблема, касающаяся вашего примера, заключается в том, что вам нужно, чтобы ваши блоки продуктов были одинакового размера, или сетка не сохранит свою форму. Одно из возможных решений - дать .product фиксированную высоту и настроить с помощью мультимедийных запросов.
Вот пример, который я сделал, что работает в Safari и других браузерах: http://codepen.io/anon/pen/PZbNMX Кроме того, вы можете использовать правило стиля, чтобы сохранить изображение или текст описания в пределах определенного размера, чтобы сделать вещи проще в обслуживании.
Другим возможным решением является использование сценария или плагина jQuery для обеспечения более динамичного единообразного размера, но я не так сообразителен в этом.
Я столкнулся с тем же вопросом, пытаясь объединить flex и Bootstrap с помощью Safari, поэтому я надеюсь, что это поможет.
это не только Safari, но почти все браузеры прошивки есть эта ошибка - сафари, хром, Firefox, Opera –
Причины этого разрыва во всех IOS браузеров является то, что IOS позволяют только другим браузерам использовать WebKit из Safari. Таким образом, любая ошибка, которую Safari имеет с рендерингом, также будет находиться в других браузерах iOS. –