css - manejo - ¿Cómo controlar el número de elementos por fila usando consultas de medios en Flexbox?
inline flex (1)
Tuve que deshacerme del margen alrededor de los bloques, porque los anchos de porcentaje son difíciles de aplicar limpiamente a los elementos con márgenes, pero puedes ver los cambios en http://codepen.io/anon/pen/jPeLYb?editors=110 :
@mixin max-width($width) {
@media screen and (max-width: $width) {
@content;
}
}
.container {
position: relative;
display: flex;
flex-flow: row wrap;
}
.item {
background-color: tomato;
box-sizing: border-box;
padding: 20px;
outline: 2px solid blue;
flex: 1;
}
@include max-width(992px) {
.item {
flex-basis: 25%;
background-color: red;
}
}
@include max-width(640px) {
.item {
flex-basis: 50%;
background-color: green;
}
}
Las partes importantes aquí son:
flex-flow: row wrapque permite que el flexbox aparezca en varias filas (el predeterminado esnowrap)flex-basisque es el equivalente dewidthen este casoposition: relativeque hace que los anchos sean relativos al contenedor, en lugar del cuerpo (esto arruinaría el redondeo)
Entonces imagina que tengo el siguiente Markup
<div class="container">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
Y los siguientes estilos (SASS)
@mixin max-width($width) {
@media screen and (max-width: $width) {
@content;
}
}
.container {
display: flex;
@include max-width(992px) {
number: 4; //Hypothetical property that is supposed to control number per row
}
@include max-width(640px) {
number: 2; //Hypothetical property that is supposed to control number per row
}
}
.item {
background-color: tomato;
padding: 20px;
margin-right: 20px;
flex: 1;
}
¿Existe una alternativa real de Flexbox CSS a mi propiedad de number hipotético que puede controlar cuántos elementos mostrar por fila?
La cuadrícula flotante era útil porque podías colocar .items ilimitados por cada .row debido al width . Pero con Flexbox tengo que usar soluciones como numerosas clases .row para controlar el diseño y el número de elementos con ancho diferente. He tenido suerte hasta ahora, pero hay cierto tipo de diseño que fallará con tal enfoque.