這個應用場境是什麼時候會出現呢?
大概是製作手機版型的網頁時會出現…
實現的方法具體來說很簡單
只需要用到兩個 CSS 的特性:
- flex
- calc
flex
flex 應該還是目前比較主流的排版方式
手機的版型一般來說是縱向設計
所以會需要在容器的父元素加上:
display="flex"flexDirection="column"
當然還有父元素高度要設定
height="100vh"
再來就是讓需要建立滾動區塊的子元素佔滿剩餘可用空間:
flex={1}overflow="auto"
JSX 代碼範例可以參考下方:
實際的寫法可以根據專案需求再做調整
1 | <Box display="flex" flexDirection="column" height="100vh"> |
calc
根據不同專案的 layout 設計
可能會出現固定式的 TopBar 或 FooterBar
萬一遇到這種情況要如何處理呢
可以用 calc 這個 css 特型來對高度進行輔助計算
這邊的場景是假設 layout 還包含了一個 position: fixed 的 FooterBar(80px)
這樣頁面父元素的高度可以改寫為:
height="calc(100vh - 80px)"
改寫後 JSX 代碼範例可以參考下方:
1 | <Box display="flex" flexDirection="column" height="calc(100vh - 80px)"> |
本文作者: David Huang
本文地址: https://davidblog.github.io/2023/07/28/根據畫面剩餘高度建立滾動區域/