2017-01-12 12 views
0

Bitte helfen Sie mir, die Quest zu lösen. Wir haben 3 Div-Blöcke. Die Höhe des ersten Divs ist auf 100px eingestellt (aber in der Realität ist es ein dynamischer Wert). Der zweite Block hat eine feste Höhe und einen anderen Block als Kind. Der untergeordnete Block sollte die Höhe bis zum unteren Bildschirmrand haben. Aber da unser zweiter Block relativ ist, bedeutet unten: 0 den unteren Teil des zweiten Blocks. Was ist die beste Praxis für solche Fälle, bitte reine CSS?Positionierung absolute Höhe Element innerhalb relativ

body > div { height: 100px; } 
 

 
.first { background: lightblue; } 
 

 
.second { 
 
    background: lightgreen; 
 
    position: relative; 
 
} 
 

 
.second div { 
 
    position: absolute; 
 
    background: pink; 
 
    width: 50%; 
 
    height: 200px; 
 
    top: 100px; 
 
}
<div class="first">The height of the block may vary greately.</div> 
 
<div class="second"> 
 
    <div>This DIV should take whole free space to the bottom of the screen.</div> 
 
</div>

UPD:

I durch Umwickeln zweiten div in zusätzliche div (Breitenposition absolute und unten: 0), um den Effekt zu erzielen und es mit transparentem Hintergrund verlassen, aber dann statisch Inhalte "dahinter" werden unbrauchbar. Hier ist an example.

+0

die div sollte den verbleibenden Platz nehmen? das zweite div oder das Kind des zweiten div? das Kind hat eine Höhe von 200px. Ich nehme an, der zweite wird es nehmen? – jmag

+0

@jmag Kind sollte verbleibenden Platz haben. 200px ist eine Zufallszahl. – Mike

+0

Warum können Sie nicht 3 Divs auf demselben Niveau haben, nicht verschachtelt? – Stickers

Antwort

1

Dieses auf Ihrem Update Geige basiert, da es nicht klar ist, was Sie erreichen wollen, aber sie erwähnt dieses Beispiel war in der Nähe, habe ich Ihren Link mit z-index oben zu sein, so ist es klickbare:

Check external Fiddle, embedded seems to break bottom

+0

Sie können hier überprüfen: https://jsfiddle.net/Syden/n725s1nq/1/ da das Snippet den Boden vermasselt. – Syden

+0

Danke, werde versuchen, dies in meinem Projekt zu verwenden. Ja Idee ist, dass zweite div ist ein Menü, und rosa Block ist eine Art Dropdown. Und dieses Drop-down muss unten auf dem Bildschirm angezeigt werden. Aber der zweite Block wurde von oben durch einen zusätzlichen Block getrennt. Scheint so, als müsste ich die Position relativ zum ganzen Seiteninhalt setzen.Seit dem zweiten div ist fast Vollbild-Overlay. – Mike

0

body > div { height: 100px; } 
 

 
.first { background: lightblue; } 
 

 
.second { 
 
    background-color: lightgreen; 
 
    top: 100px; 
 
} 
 

 
.second >div { 
 
    background: pink; 
 
    width: 50%; 
 
    height: 100%; 
 
}
<div class="first">The height of the block may vary greately.</div> 
 
<div class="second"> 
 
    <div>This DIV should take whole free space to the bottom of the screen.</div> 
 
</div>

+0

Ich würde einfach so viel wie möglich vermeiden. – jmag

+0

Vielen Dank für Ihre Zeit und Mühe, aber es tut mir leid, es ist nicht das, was ich brauche. – Mike

Verwandte Themen