Foros del Web » Creando para Internet » CSS »

[SOLUCIONADO] posts en dos columnas

Estas en el tema de posts en dos columnas en el foro de CSS en Foros del Web. tengo un div que contiene un numero indefinido de divs, los cuales quiero que se posicionen en dos columnas con margen entre ellas pero con ...
  #1 (permalink)  
Antiguo 10/04/2013, 03:36
laura_moreno14
Invitado
 
Mensajes: n/a
Puntos:
posts en dos columnas

tengo un div que contiene un numero indefinido de divs, los cuales quiero que se posicionen en dos columnas con margen entre ellas pero con una margen 0 a los lados.

No tengo problema en ponerlos en dos columnas con float:left, el problema es el margen entre ellos, ya que si les pongo margin-left o right me queda un margen que no deseo a un lado o a otro de las columnas.

Hasta ahora lo mas que he conseguido en usar :first-child pero solo afecta al primero de todos, las siguientes filas no quedan igual.
  #2 (permalink)  
Antiguo 10/04/2013, 03:56
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: posts en dos columnas

Puedes ponerle un margen derecho a todos los elementos flotados, y utilizar nth-child() para quitar ese margen a cada segundo div:

Código CSS:
Ver original
  1. div {
  2.   margin-right: 10px;
  3. }
  4.  
  5. div:nth-child(even) {
  6.   margin-right: 0;
  7. }

También podrías usar así el selector:
Código CSS:
Ver original
  1. div:nth-child(2n+1){}

O simplemente sólo setear el margen derecho a la primera columna que a priori sería más correcto:
Código CSS:
Ver original
  1. div:nth-child(odd){
  2.   margin-right: 10px;
  3. }

Un buen artículo de Chris Coyier sobre cómo funciona nth-child, ya que es un poco atravesado: http://css-tricks.com/how-nth-child-works/

Última edición por pzin; 10/04/2013 a las 04:03
  #3 (permalink)  
Antiguo 10/04/2013, 04:09
laura_moreno14
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: posts en dos columnas

Muchas gracias Pzin por tu rápida y buena respuesta. No conocía este selector y me ha parecido muy interesante, la verdad es que creo que me va a ser muy util de aquí en adelante.

Una pena que no funcione en IE, por lo que si alguien conoce una forma alternativa, estoy abierta a otras soluciones.

Gracias de nuevo pzin, si pudiera te daba mas puntos!
  #4 (permalink)  
Antiguo 10/04/2013, 04:19
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: posts en dos columnas

Tengo entendido que funciona en IE9 e IE10. Como no tengo instalado IE, ¿podrías confirmarlo? Por si vienen otros con el mismo problema a golisnear el tema.

Hacerlo funcionar mediante CSS puro para IE8 pudiera hacerse con un selector de hermanos; +.

Código CSS:
Ver original
  1. /* Primero (primero primera fila) */
  2. div:first-child  {
  3.   margin-right: 0;
  4. }
  5.  
  6. /* Tercero (primero segunda fila) */
  7. div:first-child + div + div  {
  8.   margin-right: 0;
  9. }
  10.  
  11. /* Quinto (primero tercera fila) */
  12. div:first-child + div + div + div + div  {
  13.   margin-right: 0;
  14. }

Y así sucesivamente. Es un poco arcaico, repetitivo y feo. Muy feo.

Usando Sass o less podría hacerse fácilmente y luego llamarlo mediante un comentario condicional para IE.

Pero claro, si el contenido es dinámico se complica aún más el asunto.

Yo personalmente me estoy olvidando de IE8.
  #5 (permalink)  
Antiguo 10/04/2013, 11:00
laura_moreno14
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: posts en dos columnas

En IE 10 si que funciona, así que perfecto.

Gracias por darme otra solución, suelo tener problemas al centrar este tipo de cosas así que seguro que les daré uso.

Etiquetas: columnas, divs, posts
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 10:18.