Foros del Web » Creando para Internet » CSS »

Div encima de otro al achicar pantalla

Estas en el tema de Div encima de otro al achicar pantalla en el foro de CSS en Foros del Web. Hola, quizás la pregunta sea media floja. Pero la verdad no se me ocurre como hacerlo. He usado media queries para adaptar y dá resultado ...
  #1 (permalink)  
Antiguo 14/07/2015, 09:18
 
Fecha de Ingreso: mayo-2013
Mensajes: 9
Antigüedad: 11 años, 6 meses
Puntos: 0
Div encima de otro al achicar pantalla

Hola, quizás la pregunta sea media floja. Pero la verdad no se me ocurre como hacerlo. He usado media queries para adaptar y dá resultado pero como haría a la inversa. Pongo el ejemplo del código:



#contenedor {
background-color:#3C6;
width:100%;
margin:auto;
}

.uno{
background-color: #f88;
width: 50%;
float: left;
}

@media (max-width: 600px) {
.uno {
background: #044;
width:100%;
}
}

.dos{
background-color: #b44;
width: 50%;
float:left;

}

@media (max-width: 600px) {
.dos {
background: #077;
width:100%;
}
}


<body>

<div id="contenedor">


<div class="uno">1</div>

<div class="dos">2</div>


</div>

</body


Al hacerlo así dá resultado, pero como haría para que al achicarlo el div 2 quede sobre el 1?
  #2 (permalink)  
Antiguo 14/07/2015, 09:22
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.489
Antigüedad: 22 años, 4 meses
Puntos: 2114
Respuesta: Div encima de otro al achicar pantalla

La forma fácil es cambiando la estructura, poniendo en el markup primero el segundo elemento y flotándolo a la izquierda. Y luego cuando quieras que aparezca encima simplemente dejar de flotarlo.
__________________
(:
  #3 (permalink)  
Antiguo 14/07/2015, 12:43
Avatar de fede5426  
Fecha de Ingreso: diciembre-2014
Ubicación: Córdoba
Mensajes: 446
Antigüedad: 10 años
Puntos: 208
Respuesta: Div encima de otro al achicar pantalla

En mi opinion la forma mas facil es usando flexbox, aprovechando el atributo order.

Código CSS:
Ver original
  1. #contenedor {
  2. background-color:#3C6;
  3. width:100%;
  4. margin:auto;
  5. display:flex;
  6. flex-direction:row;
  7. flex-wrap:wrap;
  8. }
  9.  
  10. .uno{
  11. background-color: #f88;
  12. width: 50%;
  13. }
  14.  
  15. @media (max-width: 600px) {
  16. .uno {
  17. background: #044;
  18. width:100%;
  19. order:2;
  20. }
  21. }
  22.  
  23. .dos{
  24. background-color: #b44;
  25. width: 50%;
  26. }
  27.  
  28. @media (max-width: 600px) {
  29. .dos {
  30. background: #077;
  31. width:100%;
  32. order:1;
  33. }
  34. }

http://codepen.io/fede5426/pen/aOKEWR

Saludos
  #4 (permalink)  
Antiguo 14/07/2015, 13:14
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.489
Antigüedad: 22 años, 4 meses
Puntos: 2114
Respuesta: Div encima de otro al achicar pantalla

No es fácil, es más complicado.
__________________
(:
  #5 (permalink)  
Antiguo 14/07/2015, 18:46
Avatar de fede5426  
Fecha de Ingreso: diciembre-2014
Ubicación: Córdoba
Mensajes: 446
Antigüedad: 10 años
Puntos: 208
Respuesta: Div encima de otro al achicar pantalla

Cita:
Iniciado por pzin Ver Mensaje
No es fácil, es más complicado.
Quizás en vez de decir "la forma mas fácil es..." debería haber dicho "otra forma de hacerlo es..."

Igual no es tan complicado.. solamente hay que definir al contenedor como flexible y a sus hijos darle el orden de aparición usando order.. no es cosa de otro mundo, yo prefiero hacerlo así en lugar de flotar los elementos.. opinión personal nada más

Saludos
  #6 (permalink)  
Antiguo 16/07/2015, 21:32
 
Fecha de Ingreso: mayo-2013
Mensajes: 9
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Div encima de otro al achicar pantalla

Cita:
Iniciado por fede5426 Ver Mensaje
En mi opinion la forma mas facil es usando flexbox, aprovechando el atributo order.



Saludos
Gracias, buena opción. Saludos.

Etiquetas: background, color, encima, float, pantalla, width
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 00:49.