Foros del Web » Creando para Internet » CSS »

Duda con flexbox

Estas en el tema de Duda con flexbox en el foro de CSS en Foros del Web. Estoy poniéndome al día con CSS y estoy haciendo mi navbar con flexbox, a ver que tal. El caso es que quiero items en el ...
  #1 (permalink)  
Antiguo 07/06/2016, 12:01
 
Fecha de Ingreso: septiembre-2003
Mensajes: 140
Antigüedad: 20 años, 7 meses
Puntos: 2
Duda con flexbox

Estoy poniéndome al día con CSS y estoy haciendo mi navbar con flexbox, a ver que tal.

El caso es que quiero items en el contenedor flexbox, pero no distribuidos de forma uniforme, si no que unos elementos estén a la izquierda, pero el último que esté a la derecha del todo, dejando espacio vacío desde el anteúltimo de la izquierda al último (a la derecha).

Así:
ITEM1 ITEM2 ITEM3 --------------------------------------------------- ITEM4

He estado leyendo por encima varios cheatsheet de flexbox, pero ninguno resuelve mi problema. O se alinean a la derecha o a la izquiera o al centro, pero todos de golpe.

¿Alguien sabe si se puede?
  #2 (permalink)  
Antiguo 07/06/2016, 16:42
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 9.028
Antigüedad: 21 años, 1 mes
Puntos: 1826
Respuesta: Duda con flexbox

Flex box para este caso no creo que sea necesario. Yo pondría un display: inline-block.

El flexbox lo uso para cuando un elemento puede variar su alto dependiendo del tamaño de la ventana, lo cual no sucede verticalmente en un menú.

Por lo tanto es fácil alinear a la izquierda todo, que será su alineación natural y ponerle por ejemplo un float: right al elemento de la derecha.

También podrías poner un position: absolute y ponerle un right: 0;
  #3 (permalink)  
Antiguo 10/06/2016, 16:12
Avatar de alivan  
Fecha de Ingreso: agosto-2010
Mensajes: 16
Antigüedad: 13 años, 8 meses
Puntos: 3
Respuesta: Duda con flexbox

Para alinear elementos con flexbox puedes usar la propiedad margin. Si defines el margin-left del item 4 como auto, el elemento aplicará el margen necesario para alinearse a la derecha, consiguiendo posicionar el elemento de la forma que necesitas.

Puedes probarlo con este código:
Código HTML:
Ver original
  1. <nav>
  2.   <a href="#">Frutas</a>
  3.   <a href="#">Verduras</a>
  4.   <a href="#">Carne</a>
  5.   <a href="#">Pastelería</a>
  6.   <a href="#">Perfil</a>
  7. </nav>
Código CSS:
Ver original
  1. nav {
  2.   display: flex;
  3. }
  4.  
  5. nav a:last-child {
  6.   margin-left: auto;
  7. }

Etiquetas: todo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:21.