2013-02-28 26 views
7

Come allineare 3 div in una riga sinistra-centro-destra senza dover definire dimensioni esplicite?Come allineare 3 div left-center-right?

La parte sinistra deve essere allineata per la maggior parte sul bordo sinistro e sul margine destro.

Quanto segue non funziona:

<div style="float: left;"> 
    left 
</div> 
<div style="float: right;"> 
    right 
</div> 
<div style="margin: 0 auto;"> 
    center 
</div> 
+0

Quando faccio questo, di solito almeno 2 dal 3 hanno taglie che posso specificare, e ho solo il terzo aggiustamento agli altri due – ppeterka

+0

Non capisco qual è il problema con il codice che hai scritto. fa proprio quello che hai descritto: http://jsfiddle.net/tagCs/ –

risposta

16

Aggiungere un wrapper div e dare text-align:center

CSS

.wrap{ 
     text-align:center 
    } 

HTML

<div class="wrap"> 
<div class="left"> 
    left 
</div> 
<div class="right"> 
    right 
</div> 
<div class="center"> 
    center sdv dg sdb sdfbh sdfhfdhh h dfh 
</div> 
    </div> 

DEMO

+0

Ho applicato text-align: center al wrapper con 3 immagini, qualcuno può spiegare perché funziona? –

2
<div style="width:100%;margin:0 auto; padding: 0"> 
    <div style=" float:left;width:32%;border: thin solid black"> 
     left 
    </div> 
    <div style=" float:left;width:32%;border: thin solid black"> 
     center 
    </div> 
    <div style=" float:left;width:32%;border: thin solid black"> 
      right 
    </div> 
</div> 
<div style="clear:both"> 
</div> 
+0

Hai provato questo? Non funziona per me: http://jsfiddle.net/eqAyg/ – membersound

+0

Ho digitato accidentalmente la proprietà float in stile div principale. Dovrebbe essere in ogni div interno. – zkanoca

2

Ecco un esempio di come fare questo mettendo i carri nell'ordine corretto.

jsFiddle Example

<div class="square" style="float: left;">left</div> 
<div class="square" style="float: right;">right</div> 
<div class="square" style="margin:0 auto !important;">center</div> 


.square { 
width:50px; 
height:50px; 
background-color:#ff0000; 
text-align:center; 
border: 1px solid #000; 
} 
0

Prova questo

CSS

div{width:33%;} 

HTML

<div style="float: left;border:1px solid red;"> 
    left 
</div> 
<div style="float: right;border:1px solid green;"> 
    right 
</div> 
<div style="margin: 0 auto;border:1px solid blue;"> 
    center 
</div> 
0

In realtà non è possibile farlo, senza conoscere il contenuto e il modello di layout. Ma per un punto di inizio, si può provare questo:

HTML:

<div class="clearfix holder"> 
    <div class="column left"> 
     Some Contents Here... 
    </div> 
    <div class="column middle"> 
     Some Contents Here... 
    </div> 
    <div class="column right"> 
     Some Contents Here... 
    </div> 
</div> 

CSS:

.clearfix:before, 
.clearfix:after { 
    content: " "; 
    display: table; 
} 
.clearfix:after { 
    clear: both; 
} 
.clearfix { 
    *zoom: 1; 
} 
.holder{ 
    text-align:center; 
} 
.column{ 
    display:inline-block; 
    *display:inline; 
    *zoom:1; 
    width:auto; 
} 
.left{ 
    background-color:#ff0; 
    float:left; 
} 
.middle{ 
    background-color:#f0f; 
    margin:0 auto; 
} 
.right{ 
    background-color:#0ff; 
    float:right; 
} 

DEMO

Problemi correlati