Mit den folgenden HTML
undCSS
.container {
position: relative;
border: solid 1px red;
height: 256px;
width: 256px;
overflow: auto;
}
.full-height {
position: absolute;
top: 0;
left: 0;
right: 128px;
bottom: 0;
background: blue;
}
<div class="container">
<div class="full-height">
</div>
</div>
Das Innere div
nimmt nach Wunsch den vollen Kopf des Behälters ein. Wenn ich jetzt einen anderen Flow-Inhalt zum Container hinzufüge, wie z.
.container {
position: relative;
border: solid 1px red;
height: 256px;
width: 256px;
overflow: auto;
}
.full-height {
position: absolute;
top: 0;
left: 0;
right: 128px;
bottom: 0;
background: blue;
}
<div class="container">
<div class="full-height">
</div>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aspernatur mollitia maxime facere quae cumque perferendis cum atque quia repellendus rerum eaque quod quibusdam incidunt blanditiis possimus temporibus reiciendis deserunt sequi eveniet necessitatibus
maiores quas assumenda voluptate qui odio laboriosam totam repudiandae? Doloremque dignissimos voluptatibus eveniet rem quasi minus ex cumque esse culpa cupiditate cum architecto! Facilis deleniti unde suscipit minima obcaecati vero ea soluta odio cupiditate
placeat vitae nesciunt quis alias dolorum nemo sint facere. Deleniti itaque incidunt eligendi qui nemo corporis ducimus beatae consequatur est iusto dolorum consequuntur vero debitis saepe voluptatem impedit sint ea numquam quia voluptate quidem.
</div>
Dann rollt der Container wie gewünscht, jedoch ist das absolut positionierte Element nicht mehr am Boden des Containers verankert, sondern stoppt am anfänglich sichtbaren Boden des Containers. Meine Frage ist; Gibt es eine Möglichkeit, das absolut positionierte Element ohne Verwendung auf die vollständige Bildlaufhöhe seines Containers zu bringen JS
?
top: 0;
, funktioniert es einfach nicht mehr.innerHeight
, wird das schwierig sein. Funktioniert leiderposition:fixed
nicht im Container, da er nicht im Fluss ist, sodass diese 'Problemumgehung' auch nicht funktioniert :(Antworten:
Sie müssen den Text in ein
div
Element einschließen und das absolut positionierte Element darin einfügen.CSS:
Wenn Sie die Position des inneren Div so einstellen,
relative
dass die absolut positionierten Elemente innerhalb des Div ihre Position und Höhe darauf.container
basieren, anstatt auf dem Div, das eine feste Höhe hat. Ohne die innere, relativ positioniertediv
,.full-height
berechnet der Div immer seine Abmessungen und Position basierend auf.container
.Code-Snippet anzeigen
http://jsfiddle.net/M5cTN/
quelle
fill-height
Element scrollt eindeutig mit dem Inhalt. Wollte das OP nicht, dass es verankert wird? (Indem Sie den blauen Hintergrund in ein Hintergrundbild ändern, können Sie sehen, was ich meine, wenn ich sage, dass es nicht verankert ist. Jsfiddle.net/M5cTN/82 )position: fixed;
wird Ihr Problem lösen. Überprüfen Sie als Beispiel meine Implementierung eines festen Nachrichtenbereichs-Overlays (programmgesteuert ausgefüllt):Und im HTML
Wenn
#data
das Bild länger wird,#mess
behält es seine Position auf dem Bildschirm bei, während es#data
darunter scrollt.quelle
transform: translate3d(0,0,0);
auf dem Elternteil wird dazu führenposition: fixed
, relativ zum Elternteil zu werden. Quelle coderwall.com/p/2wzj-a/…Gaiour ist also richtig, aber wenn Sie nach einem Element mit voller Höhe suchen, das nicht mit dem Inhalt scrollt, sondern tatsächlich die Höhe des Containers ist, finden Sie hier die Lösung. Haben Sie ein übergeordnetes
overflow: scroll
Element mit einer Höhe, die einen Überlauf verursacht, einen Inhaltscontainer mit einer Höhe von 100% und und ein Geschwister können dann entsprechend der übergeordneten Größe und nicht der Größe des Bildlaufelements positioniert werden. Hier ist die Geige: http://jsfiddle.net/M5cTN/196/und den entsprechenden Code:
html:
CSS:
quelle
Ich bin in diese Situation geraten und es war unpraktisch, ein zusätzliches Div zu erstellen. Am Ende habe ich nur die
full-height
Div auf gesetztheight: 10000%; overflow: hidden;
Natürlich nicht die sauberste Lösung, aber sie funktioniert sehr schnell.
quelle