2009-10-06 10 views
6

Ich versuche ein einfaches Fluid-Layout mit CSS tables technique, aber es gibt einen großen Fehler, den ich darin gefunden habe: min-Breite und max -width werden bei Elementen mit Tabellenzellenanzeige ignoriert.min-width und max-width werden ignoriert, wenn Element angezeigt wird: table-cell

Kennen Sie eine Problemumgehung, die es mir ermöglichen würde, anzugeben, wie weit das Element #sidebar im folgenden Beispiel gedehnt werden kann?

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

Antwort

-1

Wenn Sie nur versuchen, eine Sidebar und Haupt-Setup zu tun, verwenden float: left statt table-row und table-cell. Dann können Sie Ihre Mindestbreite auf die ID setzen.

+0

Wenn Sie die 'aside' müssen die gleiche Höhe wie die' main' (oder umgekehrt), um sie ineinander schwimmt nicht zur Arbeit gehen. Das ist der Grund für das "display: table" und "display: table-cell" Ding an erster Stelle. – IIllIIll

5

weiteren hinzufügen Wrapper in jedem div:

<div id="wrapper"> 

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

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

</div> 

und legte die *-width Erklärungen auf sie:

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

Danke, Hinzufügen von zusätzlichen inneren div erlaubt mir, min-width anzugeben. Aber das Hinzufügen von max-width zu inner div wird nicht verhindern, dass #sidebar größer wird, hier ist screenshot: http://wstaw.org/d/5ed3 –

Verwandte Themen