Soweit ich weiß, dass die Höhe als Prozentsatz arbeiten soll, muss das Containerelement eine bestimmte Höhe haben. Dies gilt jedoch nicht für ein absolut positioniertes Element, bei dem der Vorfahr relativ positioniert ist. Hier ist ein funktionierendes Beispiel dafür, was ich meinte:Warum funktioniert die Höhe 100% auf einem absolut positionierten Element?
.container {
width: 400px;
background: cyan;
text-align: right;
position: relative;
color: white;
}
.child {
width: 90%;
height: 100%;
background: blue;
}
.absolute {
position: absolute;
}
.second {
margin-top: 30px;
}
<div class="container">
<div class="child absolute">Absolute</div>
one <br> two <br> three <br> one <br> two <br> three <br>
</div>
<div class="container second">
<div class="child">Static</div>
one <br> two <br> three <br> one <br> two <br> three <br>
</div>
Wie Sie die absolut platziert div angewendet 100% Höhe auf sie sehen können, aber nicht die statisch positioniert div. Warum?
Ihr 'Kind' Element, da Sie keine' Position' beschreiben, ist es standardmäßig 'position: static;'. Um Ihre 'Höhe: 100%;' zu berechnen, sollte das Elternelement eine 'height' definiert haben, tut dies aber nicht. In diesem Fall wird der Browser die Höhen seiner Kinder nicht ändern/berechnen, wenn sie nicht absolut positioniert sind (sodass sie mit der Größe ihres Inhalts übereinstimmen). Der "position: absolute;" - Fall ist anders, da er berechnet wird, nachdem das Elternelement gerendert wurde. –
https://www.w3.org/TR/CSS22/visudet.html#the-height-property – LGSon