Foros del Web » Creando para Internet » Diseño web »

4 divs que ocupen 100% y con margen entre ellos?

Estas en el tema de 4 divs que ocupen 100% y con margen entre ellos? en el foro de Diseño web en Foros del Web. Hola, Estoy intentado hacer una web que se ajuste al tamaño de la pantalla... En ella quiero poner 4 divs alineados horizontalmente que ocupen en ...
  #1 (permalink)  
Antiguo 22/07/2013, 02:32
 
Fecha de Ingreso: abril-2003
Ubicación: Valencia
Mensajes: 223
Antigüedad: 21 años, 1 mes
Puntos: 7
4 divs que ocupen 100% y con margen entre ellos?

Hola,

Estoy intentado hacer una web que se ajuste al tamaño de la pantalla...

En ella quiero poner 4 divs alineados horizontalmente que ocupen en total el 100% del ancho de la pantalla.

De momento tengo:
Código HTML:
<div id="div25">aaa</div><div id="div25">bbb</div><div id="div25">bbb</div><div id="div25">ddd</div>

y el css #div25{width:25%; padding:0px; text-align:center; float:left;}
El caso es que quiero que entre los DIVs haya algún espacio por lo que si pongo padding: 10px ó margin: 10px, el último div ya no cabe y se baja.

¿Cómo hacer para que los 4 divs quepan uno al lado del otro y tengan alguna separacion entre ellos?

Gracias y un saludo
  #2 (permalink)  
Antiguo 22/07/2013, 10:02
Avatar de Mariano_Floyd  
Fecha de Ingreso: marzo-2013
Ubicación: Córdoba
Mensajes: 155
Antigüedad: 11 años, 2 meses
Puntos: 14
Respuesta: 4 divs que ocupen 100% y con margen entre ellos?

Hola, antes que nada, no pueden haber dos elementos con el mismo id, para eso existen las clases.
Segundo, si quieres agregar texto, lo ideal seria que uses etiquetas adecuadas para ello, por ejemplo:
<div class="bloque">
<p>hola</p>
</div>

Por ultimo y dándole solución a tu problema, agrega en el css:
box-sizing:border-box;

Aquí lo observaras mejor:

http://jsfiddle.net/2T7aV/
  #3 (permalink)  
Antiguo 22/07/2013, 10:09
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 9.028
Antigüedad: 21 años, 1 mes
Puntos: 1826
Respuesta: 4 divs que ocupen 100% y con margen entre ellos?

Si usas porcentajes puedes poner

{width: 23%; margin: 0px 1%;}

Otra maravilla es poner

{box-sizing: border-box; padding: 0 1%;} (también puedes usar px en este caso)

Y otra que va a ser interesante en un futuro es

width: calc(25% - 60px); margin: 0 30px;}


Y así puedes poner el margen en pixeles.

Edito. Te me adelantaste Mariano.
  #4 (permalink)  
Antiguo 22/07/2013, 11:32
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 9 meses
Puntos: 2114
Respuesta: 4 divs que ocupen 100% y con margen entre ellos?

Yo la solución que aplicaría sería la de Rafael, la de usas calc(). Para mi IE8 está prácticamente muerto y en IE9 "ya" funciona calc(). Así que personalmente no lo veo tan futurista.

Otra opción que tienes, que yo suelo usar en un pequeño sistema de grillas, es crear contenedores, box-sizing y padding-right:

Código HTML:
Ver original
  1. <div id="contenedor">
  2.     <div class="col1-4">
  3.         <div>Hola</div>
  4.     </div>
  5.     <div class="col1-4">
  6.         <div>¿Cómo</div>
  7.     </div>
  8.     <div class="col1-4">
  9.         <div>estás</div>
  10.     </div>
  11.     <div class="col1-4">
  12.         <div>hoy?</div>
  13.     </div>
  14. </div>

Código CSS:
Ver original
  1. div#contenedor {
  2.     padding-left: 10px;
  3. }
  4.  
  5. div.col1-4 {
  6.     float: left;
  7.     width: 25%;
  8.     box-sizing: border-box;
  9.     padding-right: 10px;
  10. }

Puedes verlo aquí.

Aunque como digo, prefiero usar calc.
  #5 (permalink)  
Antiguo 22/07/2013, 22:45
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 9.028
Antigüedad: 21 años, 1 mes
Puntos: 1826
Respuesta: 4 divs que ocupen 100% y con margen entre ellos?

Lo de futurista lo digo por algunos dispositivos móviles.

Etiquetas: html
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 09:44.