2009-10-06 17 views
6

Je suis en train de faire la mise en page simple, fluide à l'aide CSS tables technique, mais il y a un gros défaut que j'ai trouvé dans ce: min-max largeur et -width sont ignorés sur les éléments avec affichage table-cell.min largeur et max-width sont ignorées lorsque l'élément a display: table-cell

Connaissez-vous une solution qui me permettrait de préciser dans quelle mesure l'élément #sidebar peut étirer dans l'exemple suivant?

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! */ 
    } 

Répondre

-1

Si vous essayez juste de faire une barre latérale et la configuration principale, l'utilisation float: left au lieu de table-row et table-cell. Ensuite, vous pouvez mettre votre min-width sur l'ID.

+0

Si vous avez besoin du 'aside' être la même hauteur que le' main' (ou l'inverse) les faisant flotter dans l'autre ne va pas au travail. C'est la raison de faire la 'écran: table' et'Affichage: table chose cell' en premier lieu. Merci – IIllIIll

5

Ajouter un autre emballage intérieur de chaque div:

<div id="wrapper"> 

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

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

</div> 

Et mettre les *-width déclarations sur les:

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

, ajoutant div intérieure supplémentaire m'a permis de préciser la largeur min. Mais l'ajout de max-width à div interne n'empêchera pas #sidebar de grandir, voici la capture d'écran: http://wstaw.org/d/5ed3 –