Foros del Web » Creando para Internet » CSS »

Galeria responsive con flexbox

Estas en el tema de Galeria responsive con flexbox en el foro de CSS en Foros del Web. Hola muy buenas, estaba haciendo de galería de imagenes pero me surge un problema en las últimas fotos. Si el ancho de página lo ocupan ...
  #1 (permalink)  
Antiguo 07/03/2016, 14:02
 
Fecha de Ingreso: marzo-2016
Mensajes: 3
Antigüedad: 8 años, 1 mes
Puntos: 0
Pregunta Galeria responsive con flexbox

Hola muy buenas, estaba haciendo de galería de imagenes pero me surge un problema en las últimas fotos.

Si el ancho de página lo ocupan 4 fotos y la última fila de fotos es solo de 2, estas 2 me ocupan entre ellas todo el ancho y eso es lo que no quiero.

Mi solución fué colocar un max-width y un max-height pero quedan descentradas de las columnas y queda mucho peor. Además al estar descentradas, si añado texto debajo de ellas queda horrible.

Dejo el código html:

Código HTML:
Ver original
  1. <section  class="galeria">
  2.     <div>
  3.         <img src="imagenes/pokedex/1.png" />
  4.         <span>Bulbasaur</span>
  5.     </div>
  6.     <div>
  7.         <img src="imagenes/pokedex/2.png" />
  8.         <span>Ivysaur</span>
  9.     </div>
  10.     <div>
  11.         <img src="imagenes/pokedex/3.png" />
  12.         <span>Venusaur</span>
  13.     </div>
  14.     <div>
  15.         <img src="imagenes/pokedex/4.png" />
  16.         <span>Charmander</span>
  17.     </div>
  18.     <div>
  19.         <img src="imagenes/pokedex/5.png" />
  20.         <span>Charmeleon</span>
  21.     </div>
  22.     <div>
  23.         <img src="imagenes/pokedex/6.png" />
  24.         <span>Charizard</span>
  25.     </div>
  26.     <div>
  27.         <img src="imagenes/pokedex/7.png" />
  28.         <span>Squirtle</span>
  29.     </div>
  30.     <div>
  31.         <img src="imagenes/pokedex/8.png" />
  32.         <span>Wartortle</span>
  33.     </div>
  34.     <div>
  35.         <img src="imagenes/pokedex/9.png" />
  36.         <span>Blastoise</span>
  37.     </div>
Y css:
Código CSS:
Ver original
  1. body {
  2.     margin: 0 auto;
  3.     background: #333;
  4. }
  5. section.galeria {
  6.     margin:0 auto;
  7.     -ms-flex-wrap: wrap;
  8.     -ms-flex-direction: column;
  9.     -webkit-flex-flow: row wrap;
  10.     flex-flow: row wrap;
  11.     display: -webkit-box;
  12.     display: flex;
  13.     display: -ms-flexbox; /*IE 10*/
  14.     padding: 5%;
  15.     padding-bottom: 2%;
  16. }
  17. section.galeria div {
  18.     -webkit-box-flex: auto;
  19.     -ms-flex: auto;
  20.     flex: 300px;
  21.     width: 300px;
  22.     padding: 0.2em;
  23. }
  24. section.galeria div img {
  25.     width: 100%;
  26.     height: auto;
  27.     max-height: 300px;
  28.     max-width: 300px;
  29. }
  30. section.galeria div span {
  31.     position: relative;
  32.     display: block;
  33.     text-align: center;
  34. }
  35.  /*Media Queries*/
  36.  @media screen and (max-width: 400px) {
  37.     section.galeria div {
  38.         margin: 0;
  39.     }
  40.     section.galeria {
  41.         padding: 0;
  42.     }
  43. }

Última edición por LordGrande; 09/03/2016 a las 09:43 Razón: retocar
  #2 (permalink)  
Antiguo 14/03/2016, 16:35
 
Fecha de Ingreso: marzo-2016
Mensajes: 3
Antigüedad: 8 años, 1 mes
Puntos: 0
Respuesta: Galeria responsive con flexbox

¿Nadie? :(
  #3 (permalink)  
Antiguo 16/03/2016, 03:26
 
Fecha de Ingreso: abril-2015
Mensajes: 189
Antigüedad: 9 años
Puntos: 14
Respuesta: Galeria responsive con flexbox

Yo esto lo suelo hacer de la siguiente manera.

Pongo un div general que es donde van a estar todos los demas , en tu caso sería galería.

Le das un ancho a tu gusto , por ejemplo digamos el 90% del body para que quede un 5% a izquierda y derecha de espacio vacio y le damos position:relative y float:left;

Luego a los divs que estan dentro les aplicas a todos una misma clase que les haga ocupar por ejemplo un 16% de width para que sea 16*5 80% + un 2% de margen entre foto y foto el 90% y lo que veas de height y lo mismo float left.

De esta manera se te agruparan de izquierda a derecha de 5 en 5 y haran el salto de linea a la de abajo cuando no.

Por cierto yo antes también me comía la cabeza mucho con esto pero ahora usando bootstrap con su estructura de celdas te olvidas de todos estos problemas.
  #4 (permalink)  
Antiguo 17/03/2016, 10:37
 
Fecha de Ingreso: marzo-2016
Mensajes: 3
Antigüedad: 8 años, 1 mes
Puntos: 0
Respuesta: Galeria responsive con flexbox

Hola , muchísimas gracias por la respuesta javy7v,

pero no es exactamente lo que busco, ya que si hago una fila de 5 quizás en un dispositivo pequeño no se puede leer bien el contenido por eso lo hice sin filas para que las imagenes vayan colocandose de 4 en 4 o de 2 en 2 dependiendo de la resolución de la pantalla.

Y claro lo malo de esto es que si la última fila que se ha formado solo hay 2 fotos y en las demas 6, estas 2 ocupan lo que ocupan 3 cada una, no se si me explico jaja

Dejo aqui un enlace de una página que estoy haciendo para un colega que esta aún en desarrollo: http://www.panikterrormusik.com/joomla/index.phP/orders en ella se puede ver el ejemplo que he puesto arriba en funcionamiento, nada mas que les he puesto a las fotos un tamaño predefinido para que no ocurra el problema que menciono, pero repito, no es lo que busco

Agrego fotos para que se vea lo que tengo y lo que busco:

Lo que tengo y no busco:
https://gyazo.com/2f4bf50904517092680abe2ac53387ff
https://gyazo.com/6012aef5afe577329a525ae47bc1a822

Lo que busco:
https://gyazo.com/e525b20166db4d1163b3a3589cdfc49b

Espero que ahora si se vea bien lo que quiero. Una galeria en que las fotos ocupen toda la página y si sobra alguna que se dimensione al mismo tamaño que tienen el resto y se adapte a cualqueir dispositivo.

Gracias de nuevo!
  #5 (permalink)  
Antiguo 22/03/2016, 02:03
liranan
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Galeria responsive con flexbox

Una de las soluciones que tienes es la de darle un ancho máximo a los elementos de esa galería, de forma que nunca un elemento ocuparía todo el ancho.
Prueba algo así:
Código CSS:
Ver original
  1. section.galeria div {
  2.     flex: 1 1 auto;
  3.     max-width: 300px;
  4. }
Para que los elementos se alineen al centro como en la imagen que mandas puedes usar en el padre 'justify-content: space-around'
  #6 (permalink)  
Antiguo 22/03/2016, 02:21
liranan
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Galeria responsive con flexbox

Una de las soluciones que tienes es la de darle un ancho máximo a los elementos de esa galería, de forma que nunca un elemento ocuparía todo el ancho.
Prueba algo así:
Código CSS:
Ver original
  1. section.galeria div {
  2.     flex: 1 1 auto;
  3.     max-width: 300px;
  4. }
Para que los elementos se alineen al centro como en la imagen que mandas puedes usar en el padre 'justify-content: space-around'

Etiquetas: flex, galeria
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 19:09.