2011-08-23 15 views
5

Ho due div affiancati. Voglio div che è sul lato sinistro per occupare tutto lo spazio necessario senza spingere l'altro div (a destra) alla riga successiva.CSS - Due elementi mobili uno accanto all'altro

Ecco quello che ho in questo momento: http://jsfiddle.net/RALza/

HTML

<div id="container"> 
    <div id="divA"> left text </div> 
    <div id="divB"> right text </div> 
</div> 

CSS

#divA 
{ 
    float:left; 
    border:1px solid blue; 
    width:100%; 
} 

#divB 
{ 
    float:right; 
    border:1px solid red; 
} 

risposta

4
<div id="container"> 
    <div id="divB"> right text </div> 
    <div id="divA"> left text </div> 
</div> 

#divA 
{ 
    overflow:auto; 
    border:1px solid blue; 
} 

#divB 
{ 
    float:right; 
    border:1px solid red; 
} 

funzionerà.

Tuttavia, è necessario specificare la larghezza degli elementi mobili.

+0

Il contenuto di div sul lato sinistro varia. Quindi non posso specificare la larghezza. –

+0

@ dev.e.loper: non è necessario specificare un 'width'. – thirtydot

+0

Intendo per #divB nel mio codice (ma sembra che non sia necessario: http://www.w3.org/TR/CSS2/visudet.html#float-width) – MatTheCat

1

Prova questa violino: http://jsfiddle.net/RALza/6/

Funziona cambiando l'ordine dei due div e fare la prima div un elemento di blocco normale senza un galleggiante.

<div id="container"> 
    <div id="divB"> right text </div> 
    <div id="divA"> left text </div> 
</div> 

e

#divA 
{ 
    border:1px solid blue; 
} 

#divB 
{ 
    float:right; 
    border:1px solid red; 
} 
+0

Quanto segue, tuttavia, c'è un problema se divA ha un sacco di testo. Un div entra in un altro. http://jsfiddle.net/RALza/16/ –

1

È possibile utilizzare CSS scatole flessibili:

#container { 
 
    display: flex; 
 
    justify-content: space-between; 
 
}
<div id="container"> 
 
    <div id="divA">left text</div> 
 
    <div id="divB">right text</div> 
 
</div>