2013-08-24 13 views
7

Sto cercando di creare un layout a tre colonne, con barre laterali a larghezza statica e una colonna centrale fluida. NON voglio che le colonne scendano quando la pagina diventa troppo stretta (colonna centrale a 250px), mi piacerebbe che l'intera cosa si congeli e utilizza lo scorrimento laterale. Abbastanza sicuro che questo non può essere fatto con i galleggianti. Ecco quello che ho finora:Come rendere il layout a 3 colonne con centro fluido senza galleggianti

http://jsfiddle.net/eNDPG/210/

HTML:

<div id="header"> 
    Header 
</div> 
<div id="container"> 
<span id="leftcol"> 
    Text1 
</span> 
<span id="rightcol"> 
    Text3 
</span> 
<div id="centercol"> 
    Text2 
</div> 
</div> 
<div id="footer"> 
    Footer 
</div> 

CSS:

#container { 
overflow:hidden; 
width: 100%; 
float: left; 
} 

#leftcol { 
border: 1px solid #0f0; 
display: inline-block; 
float: left; 
width: 200px; 
} 

#rightcol { 
border: 1px solid #0f0; 
display: inline-block; 
float: right; 
width: 250px; 
} 

#centercol { 
border: 1px solid #000; 
overflow: hidden; 
} 

#header { 
border: 1px solid pink; 
width: 100%; 
} 

#footer { 
border: 1px solid pink; 
width: 100%; 
} 

risposta

6

c'è niente di sbagliato con i CSS float. È possibile utilizzare la proprietà min-width nel wrapper per impostare una larghezza minima.

Ecco un esempio:

HTML:

<div class="wrap"> 
    <div class="left">Left</div> 
    <div class="right">Right</div> 
    <div class="center">Center</div> 
</div> 

CSS:

.wrap { 
    width: 100%; 
    min-width: 940px; 
} 

.left { 
    float: left; 
    width: 200px; 
} 

.center { margin: 0 205px; } 

.right { 
    float: right; 
    width: 200px; 
} 

JSBin Demo

Aggiornamento: Ed ecco la edited Fiddle

+0

che funziona perfetto. Devo solo assicurarmi che l'intestazione e il piè di pagina si trovino nel contenitore di avvolgimento, in modo da mantenerli al 100% attraverso la larghezza delle colonne. – joshlfisher

+0

@joshlfisher, Fatto, Controlla il mio violino aggiornato. –

+0

che funziona perfettamente! – joshlfisher

2

È possibile utilizzare

display:table; 

example

+0

Lo svantaggio di questo è che i cols laterali non mantengono una larghezza statica. – joshlfisher

+1

È possibile utilizzare la larghezza minima per realizzare questo http://jsfiddle.net/eNDPG/219/ – psd2htmldepot

Problemi correlati