2011-05-28 13 views
8

Siempre soy débil cuando se trata de posicionamiento divs, pero esta situación es un poco difícil de encontrar una solución en línea. Estoy tratando de cuadros de posición así:CSS posicionamiento divs

_ ___ _ 
|_|| ||_| 
_ | | 
|_||___| 

¿Hay una manera de evitar la definición de posiciones de pixel de cada uno específicamente y hacerlos encajar en las tres columnas que tengo?

+0

¿Puede agregar más contexto? ¿Qué columnas? ¿Están esos 'div's de ancho fijo? ¿Esa parte inferior izquierda 'div' se supone que está debajo de la parte superior izquierda' div', o en línea con la parte inferior de la mitad 'div'? – thirtydot

+0

Básicamente, no tengo ni idea de lo que realmente quieres. Su HTML/CSS actual ayudaría. – thirtydot

+0

Por columnas quiero decir que los cuadros encajan en tres columnas verticales, la primera con dos en ella. Estos son de ancho fijo. El div inferior izquierdo debería estar debajo del otro. Mi código para cada cuadro sin posicionamiento es: #box { \t fondo: #FFFFFF; \t ancho: 175px; \t altura: 300px; \t relleno: 5px; \t borde: 1px sólido # b3b3b3; \t -webkit-border-radius: 5px; \t -moz-border-radius: 5px; \t radio de borde: 5px; } – Sebastian

Respuesta

4

eche un vistazo a este violín: http://jsfiddle.net/rREAh/ es esto lo que está buscando?

Si necesita un diseño perfecto, echar un vistazo al controlador de distribución Yahoo: http://developer.yahoo.com/yui/layout/

+1

Lo que me gustaría es esto (al revés, perdón por mi error): http://jsfiddle.net/rREAh/ pero con los cuadros superior e inferior no separados por un espacio, solo un pequeño margen que Lo especifico – Sebastian

+0

así que más algo como esto: http://jsfiddle.net/rREAh/1/? Puede cambiar fácilmente el margen a través del estilo css de margen superior – rdmueller

+1

¡Muchas gracias por su ayuda! – Sebastian

5

definir tres contenedores para cada columna, y flotar a la izquierda:

<div style="float:left;width:Xpx"></div> 
<div style="float:left;width:Ypx"></div> 
<div style="float:left;width:Zpx"></div> 

Ahora usted puede poner todos los contenedores en lugares apropiados en este columnas.

3

Ver:http://jsfiddle.net/qXwKT/

CSS:

.box { 
    background: #ffffff; 
    padding: 5px; 
    border: 1px solid #b3b3b3; 
    -webkit-border-radius: 5px; 
    -moz-border-radius: 5px; 
    border-radius: 5px; 
} 

#container { 
    margin: 0 auto; 
    width: 400px; 
    background: #ccc; 
    overflow: hidden 
} 
#left, #right { 
    float: left; 
    width: 75px; 
} 
#mid { 
    float: left; 
    width: 250px; 
} 
#mid .box { 
    margin: 0 10px; 
    border-color: red 
} 
#left .box { 
    margin: 0 0 10px 0; 
    border-color: blue 
} 

HTML:

<div id="container"> 
    <div id="left"> 
     <div class="box">left 1</div> 
     <div class="box">left 2</div> 
    </div> 
    <div id="mid"><div class="box">mid</div></div> 
    <div id="right"><div class="box">right</div></div> 
</div> 
+1

Definitivamente la mejor manera de implementar esto. No podría estar más de acuerdo con que tener una clase 'box' hace que esto sea mucho más fácil. – Wex

1

También eche un vistazo a este: jsfiddle example que tiene un diseño fluido.

Y another one sin la div fija en la esquina inferior izquierda.

+0

No estoy seguro de por qué estás usando 'position: fixed' en absoluto ... – Wex

+1

@Wex: Esa fue mi primera interpretación de la pregunta de OP. Más adelante, en su comentario, explicó su deseo con más detalle, pero me pareció que no era necesario cambiar mi violín, ya que ahora hay suficientes muestras. Además, esto podría proporcionar algo de inspiración adicional para Sebastian. – NGLN

+0

¡Muchas gracias por su ayuda! – Sebastian

Cuestiones relacionadas