我有一個頭div和頁腳div。標題div永遠不會移動;然而,無論屏幕大小如何,頁腳div都必須停留在窗口的底部,即「粘性頁腳」。在這兩個div之間是一個動態填充的內容div。css/javascript - 如何實現這些不尋常的設計要求?
內容div的底部直接坐在上面頁腳DIV,它必須上下移動與頁腳DIV(當屏幕尺寸垂直擴展和收縮)。它也可以被認爲是「粘。 「
但是,如果有足夠的內容,內容div必須垂直擴展(內容div的底部仍然保留在頁腳div的正上方)以儘可能多地容納內容。這將發生,直到內容div的頂部運行到標題div ...
然後,如果有太多內容顯示在頁眉和頁腳div之間,內容div將成爲可滾動的,高度的內容div收縮,以便永遠不會與標題div重疊或與頁腳div重疊。
而且,內容div不能重疊標題div或頁腳div。如果兩個div之間沒有足夠的空間在一個視圖中顯示所有內容,則內容div必須變爲可滾動
overflow-y: scroll;
。
這說明我的(無果而終)嘗試至今:
我還沒有成功地完成所有的這一點。我所做的是最少的,而且基本上沒有用處。我遇到的一些問題是:如果我製作頁腳position: absolute; bottom: 0px;
這將是一個「粘滯頁腳」,並保留在我的屏幕底部,而不考慮垂直屏幕尺寸。但是,憑藉這種絕對定位,內容div將與頁腳高興地重疊。我試圖通過製作內容div position: absolute; bottom: 180px;
來防止這種情況發生。 180px
是我的頁腳div的高度。這工作...一點點。當需要動態添加內容時,它會迅速成爲問題。內容div的頂部將很快與頭部div重疊...因此,然後我爲內容div設置了一個固定的高度,並在超過該高度時啓用滾動,但這並不考慮比我自己更大的屏幕可能會有更多顯示內容的空間。
最終,沒有一個工作方式我需要它。 使用CSS和/或JavaScript(如果需要)完成此操作的最佳方法是什麼?而且,是否有一個好的起點讓我走上正確的道路,你可能知道?
謝謝你的幫助!
這幾乎是完美的;但是,當頁腳向上移動時,我希望內容的底部也向上移動,將內容的「頂部」推入可滾動區域。這是我遇到的麻煩。在您的小提琴中,內容div的底部在頁腳移入時覆蓋。例如,應該直接在頁腳上方看到「窗口」這個詞,並且「只是一些文本」字樣移動到可滾動區域之外。現在情況正好相反。謝謝btw。 – JohnZ
@ user1914142 - 必須使用JavaScript進行調整。您的瀏覽器支持是否允許您依賴flexbox? –
從我收集的內容來看,我不認爲只有flexbox解決方案才能起作用。它似乎沒有被IE7和8所支持。但IE6現在並不是最優先考慮的事情。就javascript而言,你知道我在哪裏可以讓我開始? – JohnZ