2012-07-03 13 views
9

Ho il seguente tipo di modello. Come applicare le modifiche css per la prima e la seconda classe childDiv al 50% al div genitorecome impostare il bambino due div 50%, 50% con il genitore div

Come impostare 50%, 50% sul div child?

<div class="parentDiv"> 
    <div class="childDiv"> // 50% width 
    </div> 
    <div class="childDiv"> // 50% width 
    </div> 
</div> 
+0

Questo potrebbe essere solo me, ma sto avendo difficoltà a capire la tua domanda. – Bulvak

+0

Proprio come Christoph mostra. Un valore percentuale nel CSS è sempre relativo al div padre. Assicurati di aver impostato la larghezza di 'parentDiv'. – poepje

+0

Per impostazione predefinita, tuttavia, un 'div' viene visualizzato come blocco, quindi occuperà il 100% della larghezza del suo genitore (che, se quel genitore è' body', la larghezza sarà il 100% del viewport). – saluce

risposta

11
.childDiv{ 
    display:inline-block; 
    width:50%; 
} 

Example

Note importanti:

  1. non lasciare spazi bianchi tra il div
  2. Si potrebbe anche usare carri invece di display:inline-block;
  3. Se gli elementi non sono allineati nell'esempio, il browser non supporta box-sizing, quindi ometti il ​​bordo (era solo a scopo illustrativo).
+0

voglio impostare 2 div per bambini al 50%, 50%. Voglio dire che ogni div bambino dovrebbe prendere il 50% al Div padre usando css – ashokcc

+0

@ashokcc sì, questo è esattamente ciò che sta facendo il codice. Vedi la mia modifica. – Christoph

-1

imposta prima la larghezza del genitore a qualcosa.

.parentDiv 
{ 
width: //insert width of the parentDIV 
} 

E quindi impostare la larghezza di childDiv.

4

Qui c'è un po 'di trucco, di cui è necessario essere consapevoli. Se inserisci spazi bianchi tra la chiusura del primo div e l'apertura del secondo, il tuo 50% non funzionerà a causa dello spazio visualizzato nel browser.

Ci sono un paio di modi per farlo. Se ci si rivolge solo moderni browser (IE9 +, FF, Chrome, Safari), è possibile utilizzare inline-block:

<style> 
    .childDiv { 
     display: inline-block; 
     width: 50%; 
    } 
</style> 

<div class="parentDiv"> 
    <div class="childDiv"> // 50% width 
    </div><div class="childDiv"> // 50% width 
    </div> 
</div> 

Tuttavia, IE7 non supporta inline-block, in modo da poter passare al metodo "vecchia scuola" , utilizzando carri:

<style> 
    .childDiv { 
     float: left; 
     width: 50%; 
    } 
</style> 

<div class="parentDiv"> 
    <div class="childDiv"> // 50% width 
    </div><div class="childDiv"> // 50% width 
    </div> 
    <div style="clear: both"></div> 
</div> 

Se si vuole garantire entrambe le colonne sono esattamente la stessa larghezza e hanno ancora un piccolo spazio tra di loro, utilizzare diversi stili di carri allegorici. Nota: questo metodo non richiede che si eliminano gli spazi bianchi nel markup tra i div, a patto che la larghezza si utilizza è inferiore al 50%:

<style> 
    .childDiv { 
     width: 49.5%; 
    } 
    .left { float: left; } 
    .right{ float: right; } 
</style> 

<div class="parentDiv"> 
    <div class="childDiv left"> // 49.5% width 
    </div> 
    <div class="childDiv right"> // 49.5% width 
    </div> 
    <div style="clear: both"></div> 
</div> 
+0

grazie mille – ashokcc

Problemi correlati