2013-05-13 14 views
8

Mam div jednostki nadrzędnej i 2 elementy div wewnątrz niego. Pierwszy element div dziecka ma szerokość 50 pikseli i wysokość 100%. Drugie dziecko div ma 100% wzrostu i ja zajmę resztę szerokości (100% - 50px) jak to zrobić?Div zajmująca całą pozostałą szerokość

Oto skrzypce, które stworzyłem: http://jsfiddle.net/muGty/ Zasadniczo chcę, aby niebieski div (po prawej) całkowicie zajął resztę szarego pojemnika.

<div class="parent"> 
    <div class="left"></div> 
    <div class="right"></div> 
</div> 
+1

szerokość: calc (100% - 50px); –

+0

Najlepszy sposób na zrobienie tego: http://stackoverflow.com/a/22719552/759452 –

Odpowiedz

20

Czy masz na myśli, jak this?

<div id="left"> 
</div> 
<div id="right"> 
</div> 

CSS

html, body { 
    height: 100%; 
} 

#left { 
    width:200px; 
    float:left; 
    background: #f00; 
    height: 100%; 
} 
#right { 
    margin-left: 200px; 
    background: #0f0; 
    height: 100%; 
} 

Aktualizacja:

Można również użyć calc() właściwość w CSS3, który ułatwi ten proces jak

html, body { 
    height: 100%; 
} 

#left { 
    width:200px; 
    float:left; 
    background: #f00; 
    height: 100%; 
} 

#right { 
    float: left; 
    background: #0f0; 
    height: 100%; 
    width: calc(100% - 200px); /* Negate the fixed width element value from 100% */ 
} 

Demo 2

+7

Po prostu uwaga ... Element z właściwością "float" MUSI być na górze w znacznikach. Dokładnie tak, jak napisał pan Alien. –

+0

Jako skrzypce: http://jsfiddle.net/F27sW/ – snappieT

+0

Po wypróbowaniu kilku rozwiązań, ten działał najlepiej! Dzięki. –

0

Można dodać margines 50px do right i unoszą go.

0

Co o edytowaniu właściwą klasę, aby wyglądać tak:

.right{ 
    float:left; 
    height:50px; 
    width: 100%; 
    margin-right:-50px; 
    background-color: blue; 
    display:inline-block; 
} 
1

Wystarczy zmienić prawo div do tego:

.right{ 
    float:left; 
    height:50px; 
    width: calc(100% - 50px); 
    background-color: blue; 
    display:inline-block; 
} 
+1

To nie jest bardzo zgodne ze starszymi przeglądarkami. Zobacz http://caniuse.com/calc – Patrick

0

Można również pracować z bezwzględną pozycję na prawej stronie kolumna. Rozważmy ten przykład:

.parent{ 
    width:100%; 
    height:50px; 
    background:#888; 
    position:relative 
} 
.left{ 
    float:left; 
    height:100%; 
    width:50px; 
    background:green 
} 
.right{ 
    background:red; 
    position:absolute; 
    bottom:0; 
    left:50px; 
    right:0; 
    top:0 
} 

Zobacz te Fiddle. Zauważ, że musisz ustawić position: relative na kontenerze nadrzędnym, aby ta mogła latać.

Powiązane problemy