Mejor manera de establecer la distancia entre los elementos de flexbox
Para establecer la distancia mínima entre los elementos de flexbox estoy usando margin: 0 5px
en .item
y margin: 0 -5px
en el contenedor. A mí me parece una chapuza, pero no encuentro ninguna forma mejor de hacerlo.
[Ejemplo][1]
-- begin snippet: js hide: false -->
#box {
display: flex;
width: 100px;
margin: 0 -5px;
}
.item {
background: gray;
width: 50px;
height: 50px;
margin: 0 5px;
}
<div id='box'>
<div class='item'></div>
<div class='item'></div>
<div class='item'></div>
<div class='item'></div>
</div>
Fin del fragmento;
648
3
border-spacing
para las tablas (excepto la propiedad CSSgap
que no está bien soportada en la mayoría de los navegadores, caniuse)Por lo tanto, conseguir lo que pides es un poco más difícil.
En mi experiencia, la forma más limpia que no utiliza
:first-child
/:last-child
y funciona sin ninguna modificación enflex-wrap:wrap
es establecerpadding:5px
en el contenedor ymargin:5px
en los hijos. Esto producirá un espacio de10px
entre cada hijo y entre cada hijo y su padre.[Demo](http://jsfiddle.net/7XD8s/)
begin snippet: js hide: false console: true -->
Fin del fragmento;
Puede utilizar bordes transparentes.
He contemplado esta cuestión mientras intentaba construir un modelo de rejilla flexible que pueda volver a un modelo de tablas + celdas de tabla para los navegadores más antiguos. Y los bordes para los canalones de las columnas me parecieron la mejor opción apropiada, ya que las celdas de la tabla no tienen márgenes.
Por ejemplo
También tenga en cuenta que necesita
min-width: 50px;
para flexbox. El modelo flex no manejará tamaños fijos a menos que hagasflex: none;
en el elemento hijo particular que quieres como fijo y por lo tanto excluido de ser"flexi". http://jsfiddle.net/GLpUp/4/ Pero todas las columnas juntas con
flex:none;` ya no es un modelo flex. Aquí hay algo más cercano a un modelo flex: http://jsfiddle.net/GLpUp/5/Así que puedes usar los márgenes normalmente si no necesitas el fallback de table-cell para los navegadores más antiguos. http://jsfiddle.net/GLpUp/3/
La configuración de
background-clip: padding-box;
será necesaria cuando se utilice un fondo, ya que de lo contrario el fondo fluirá hacia la zona del borde transparente.La forma más fácil de hacerlo es con porcentajes y dejando que el margen se ajuste a su anchura
Esto significa que usted termina con algo como esto si usted estaba usando su ejemplo
Sin embargo, los valores se basan en la anchura, lo que podría no ser bueno para todo el mundo.