working que not content align css safari flexbox

css - que - flex-wrap not working



Row Wrap en flex-box no envuelto en Safari (4)

Un contenedor flexible tiene cuatro hijos, cada uno con una base flexible del 25% y un ancho mínimo. flex-flow está configurado para envolver filas. Los navegadores distintos de Safari manejan esto como se esperaba: si se alcanza el ancho mínimo, envuelve el siguiente elemento en la siguiente fila. En Safari desborda el contenedor.

Vea la demostración aquí: http://codepen.io/lbilharz/pen/aJbkI

JADE

h1 Why this ain''t wrappin'' in mobile-safari? .flex for i in [''one'',''two'',''three'',''four''] .item h2=i

Aguja

.flex display flex flex-wrap wrap flex-direction row padding 1em background lightyellow .item flex 1 0 25% padding 1em box-sizing border-box min-width 15em

¿Algunas ideas?


¡Por un comentario en bugs.webkit.org , parece que la solución es simple!

Si tu estilo es

div.flex { display: -webkit-flex; display: flex; -webkit-flex-wrap: wrap; flex-wrap: wrap; -webkit-flex-direction: row; flex-direction: row; } div.flex .item { min-width: 15em; -webkit-flex: 1; flex: 1; }

solo necesita agregar más explícita a su declaración flex . De hecho, creo que solo una línea necesita cambiar así

div.flex { display: -webkit-flex; display: flex; -webkit-flex-wrap: wrap; flex-wrap: wrap; -webkit-flex-direction: row; flex-direction: row; } div.flex .item { min-width: 15em; -webkit-flex: 1 1 15em; /* this */ flex: 1; }


Algunos navegadores no son totalmente compatibles con todos los elementos de CSS3. Prueba esto:

display:-webkit-box; display:-webkit-flex; display:-webkit-flexbox; display:-moz-flex; display:-moz-box; display:-ms-flexbox; display:flex;


Este es un error de Safari IOS. Entonces la solución / solución consiste en establecer la base flexible en un ancho explícito en lugar de automático para el elemento hijo.


Estoy usando un max-width en mis elementos flexibles, así que pude resolver esto estableciendo explícitamente el max-width dentro de la propiedad flex :

.wrapper { display: flex; flex-flow: row wrap; } li { width: 100%; max-width: 500px; flex: 1 1 500px; }