2010-03-03 9 views
7

Sto cercando di capire come creare 3 div e farli allineare nella stessa riga. Avendo 1a e 3a larghezza fissa a 100px e il 2o (medio) uno aggiusta la sua larghezza in caso di ridimensionamento del browser.CSS 3 DIV in una riga: 2 correzione 1 regolazione automatica

<div> 
    <div id="d1"> content 1</div> 
    <div id="d2"> content 2</div> 
    <div id="d3"> content 3</div> 
</div> 

grazie,

+0

Sono * prurito * suggerire '

contenuto 1 contenuti 2 contenuto 3
'... ma forse c'è anche un elegante modo basato su CSS. Vedremo. –

+0

C'è ... vedere le risposte ... :-) – AxelEckenberger

risposta

4

http://matthewjamestaylor.com/blog/ultimate-3-column-holy-grail-pixels.htm

sciopero che, molti div supplementare per garantire tutte le colonne sono uguali in altezza. This may be what you're looking for. tutto spiegato in questo eccellente articolo: http://www.alistapart.com/articles/holygrail

+1

ugh - perché dovresti fare una serie di hack CSS con margini negativi e padding quando i tavoli funzionano perfettamente? Irresponsabile. – Wells

+8

@Wells Perché usare le tabelle per il layout è ancora più irresponsabile. Le tabelle sono per dati tabulari. – ghoppe

5

Hai uso tp galleggia per allineare il sinistro e destro del telaio. Ma per questo devi riordinare i div come mostrato sotto, e impostare i margini per il div medio.

<style type="text/css"> 
#d1 { 
    float: left; 
} 

#d2 { 
    float: right; 
} 

#d3 { 
    margin-left: 100px; 
    margin-right: 100px; 
} 
</style> 

<div> 
    <div id="d1"> content 1</div> 
    <div id="d2"> content 2</div> 
    <div id="d3"> content 3</div> 
</div> 

Modifica

Grazie a Leniel Macaferi per indicare un errore. L'ordine corretto di div s deve prima essere mobile div s, quindi non mobile div s. Pertanto ho corretto il codice (scambiato div d2 e div d3).

+0

Non funziona: http://jsbin.com/ogigif/1/edit –

+0

@LenielMacaferi Grazie per aver segnalato che c'è un errore, il codice corretto ora funziona ... http://jsbin.com/evagat/1/edit – AxelEckenberger

+0

molto bello! :) ... –

0

NVM questo è vecchio, stavo per posta che cosa ha funzionato per me

<style type="text/css"> 
#d1 { 

    float: left; 
    margin-left: 50px; 

} 

#d2 { 
    float: center; 
    margin-right: 5px; 
} 

#d3 { 
float: left; 
margin-right: 5px; 
} 
</style> 

<div> 
    <div id="d1"> content 1</div> 
    <div id="d3"> content 3</div> 
    <div id="d2"> content 2</div> 
</div> 
+0

Non c'è valore 'center' per float nei CSS. (Vedi http://www.w3schools.com/css/css_float.asp) – Rigganator

3

Div è un elemento a livello di blocco, quindi è una bella opzione per gestire con la aiuto della sua proprietà di visualizzazione.

<div id="d1" style="display:inline-block; width:100px;">content1</div> 
<div id="d2" style="display:inline">content2</div> 
<div id="d3" style="display:inline-block; width:100px;">content3</div>​ 
1

Basta mettere questo fuori là come una soluzione moderna, pulita: utilizzare calc. Fiddle: http://jsfiddle.net/bg7KS/

#d2 { 
    width: 200px; /* fallback older browsers */ 
    width: -webkit-calc(100% - 200px); 
    width: -moz-calc(100% - 200px); 
    width: calc(100% - 200px); 
} 
Problemi correlati