Questo sembra essere un bug nel rendering di Safari causando l'overflow delle colonne (e quindi il wrapping) del contenitore Bootstrap (una sorta di errore di arrotondamento Webkit forse?). Dato che stai usando Bootstrap, dovresti essere in grado di ottenere il risultato desiderato senza usare 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>
Ma! Ora il problema guardando il tuo esempio è che è necessario mantenere il blocco del prodotto esattamente della stessa dimensione o la griglia non manterrà la sua forma. Una possibile soluzione è quella di dare .product un'altezza fissa e regolare utilizzando le query multimediali.
Ecco un esempio che ho fatto che funziona in Safari e altri browser: http://codepen.io/anon/pen/PZbNMX Inoltre, è possibile utilizzare le regole di stile per tenere immagini o testo descrittivo all'interno di una certa dimensione per rendere le cose più facili da mantenere.
Un'altra possibile soluzione è utilizzare uno script o un plug-in jQuery per consentire un dimensionamento più uniforme e dinamico, ma non sono così esperto con quella roba.
Ho incontrato lo stesso problema quando ho provato a combinare flex e Bootstrap usando Safari, quindi spero che questo aiuti.
fonte
2015-12-29 02:01:51
Non è solo Safari, ma quasi tutti i browser su iOS avere questo bug - Safari, Chrome, Firefox, Opera –
La ragione per questo rompere in tutti iOS browser è che iOS solo consentono altra browser per utilizzare WebKit da Safari. Quindi qualsiasi bug che Safari abbia, con il rendering, sarà anche su altri browser iOS. –