2009-10-06 18 views
6

Estoy tratando de hacer un diseño fluido simple usando CSS tables technique, pero hay un gran defecto que he encontrado en él: min-width y max ancho se ignoran en elementos con visualización de celda de tabla.min-width y max-width se ignoran cuando el elemento tiene display: table-cell

¿Conoces alguna solución alternativa que me permita especificar qué tan lejos se puede estirar el elemento #sidebar en el siguiente ejemplo?

XHTML:

<div id="wrapper"> 

    <div id="main"> 
    </div> 

    <div id="sidebar"> 
    </div> 

</div> 

CSS:

#wrapper { 
display: table-row; 
border-collapse: collapse; 
} 

    #main { 
    display: table-cell; 
    } 

    #sidebar { 
    display: table-cell; 
    width: 30%; 
    min-width: 100px; /* does not work! */ 
    max-width: 310px; /* does not work! */ 
    } 

Respuesta

-1

Si usted está tratando de hacer una barra lateral y la configuración principal, el uso float: left lugar de la tabla fila y celda de la tabla. Luego puedes poner tu min-width en la identificación.

+0

Si necesita el 'aside' a ser la misma altura que el' main' (o al revés) flotando en la otra no va a trabajar. Esa es la razón por la que se hacen las cosas 'display: table' y' display: table-cell' en primer lugar. – IIllIIll

5

Añadir otra envoltura interior de cada Div:

<div id="wrapper"> 

    <div id="main"> 
    <div class="inner"></div> 
    </div> 

    <div id="sidebar"> 
    <div class="inner"></div> 
    </div> 

</div> 

y poner el *-width declaraciones sobre ellos:

#sidebar div.inner { 
    min-width: 100px; 
    max-width: 300px; 
} 
+0

Gracias, agregando div interior adicional me permitió especificar min-width. Pero agregar max-width a div interno no evitará que #sidebar crezca, aquí está la captura de pantalla: http://wstaw.org/d/5ed3 –

Cuestiones relacionadas