2011-07-13 42 views
8

Quiero tener tres columnas, una columna central de 1000 px centrada en la página y luego una columna a la izquierda y derecha que ocupa el ancho restante.¿Cómo se selecciona la mitad del ancho restante usando css?

Básicamente quiero algo que se parece a esto:

Explanation

cuando la capa esté 1000px y los dos espacios laterales son la mitad del espacio total restante.

+1

creo que esto tiene que ser hecho en javascript, lo más parecido que se me ocurre en el CSS es 'margin: 0 auto;' – Swift

+0

1000 píxeles para el medio deja 12 píxeles para cada barra lateral en muchas pantallas – blank

+0

no son barras laterales, solo espacios. Es para una imagen de fondo. – Yesterday

Respuesta

3

Se puede centrar fácilmente un elemento con margin: 0px auto. Esto dejará un espacio a la izquierda y a la derecha del elemento. Si el elemento está dentro de otro que ocupa todo el ancho, se puede colocar un fondo y centrarlo en él.

Un ejemplo podría ser:

<div id="container"> 
    <div id="content"></div> 
</div> 

A continuación, el CSS se vería así:

#container { 
    width: 100%; 
    /* Background properties go here. */ 
} 

#content { 
    margin: 0px auto; 
    width: 1000px; 
} 

No sería posible poner contenido de cada lado de la div #content.

+0

Originalmente no se iba a votar porque esto imposibilita el uso de las áreas laterales, pero luego los comentarios reflejaron que esta era la intención, por lo que se golpeó el clavo en la cabeza de la manera menos complicada. – Dereleased

-1

así que digamos que su "ancho de página" es de 1024 píxeles de ancho. Me gustaría hacer algo como esto -

html:

<div id="page_content"> 
    <div id="element_left"> 
    </div> 
    <div id="centered_element"> 
    </div> 
    <div id="element_right"> 
    </div> 
</div> 

css:

#page_content { width:1024px; margin:0px auto 0px auto;} 
#element_left { width:12px; float:left;} 
#element_right { width:12px; float:left;} 
#centered_element { width:1000px; margin:0px auto 0px auto; float:left;} 
+1

sí, pero ¿qué ocurre cuando te mudas a un monitor diferente o cambias el tamaño del navegador? – Yesterday

+0

Los elementos no llenarían toda la página. Además, creo que tu elemento correcto debería estar flotando ¿verdad? – Druckles

0

Para un enfoque puro CSS, intentar algo así como http://jsfiddle.net/hKB9T/2/ (asegúrese de ampliar la ventana del navegador para que el cuadro "resultados" es ~ 1200 píxeles de ancho o menos)

que no está completa (en función de sus necesidades , puede que tenga que jugar con la posición del elemento .center), pero debería ponerlo en el camino correcto.

<div id="page"> 
    <div class="center">center column</div> 
    <div class="leftcol"> 
     <div class="inner">left column</div> 
    </div> 
    <div class="rightcol"> 
     <div class="inner">right column</div> 
    </div> 
</div> 

y

.leftcol, .rightcol { 
    width: 50%; 
    float: left; 
} 
.leftcol .inner { 
    margin-right: 500px; 
    height: 200px; 
} 
.rightcol .inner { 
    margin-left: 500px; 
    height: 200px; 
} 
.center { 
    width: 1000px; 
    margin: 0 auto -200px auto; 
    background-color: #eee; /* just for illustration */ 
} 
+0

Ah, revisaste tu pregunta. La respuesta de @Drukles es la forma más fácil de lograr lo que desea. Mi respuesta es una forma de hacerlo si quiere incluir contenido en las canaletas de su sitio. – digitalbath

Cuestiones relacionadas