本篇文章接續上一篇,繼續記錄 RWD 的常用選單語法結構,包含固定式選單及側邊展開(off-canvas)選單等兩種。
固定式選單
讓使用者在滑動頁面時,表頭永遠在螢幕上方。
使用 position: fixed
,但要注意頁面內容會被表頭遮住,所以內容區塊要用 padding-top
空出表頭的高度,才不會被遮住部分內容。
注意事項:
position: fixed
在安卓部分舊型手機上不適用,若能用 JS 做兼容是較好的做法。- 要考慮到表頭是否會佔螢幕太多版面,會的話就不要用
fixed
。
語法:
1 | @media(max-width: 767px){ |
off canvas 選單設計
適合用於選項超多的選單,PC 版(放較少選項)跟手機版(放較多選項)可以各一套選單設計。
說明:
請搭配 範例程式碼 一同閱讀。
- 結構:
.container
底下有.aside
(會滑出來的選單)跟.main
(底下有.header
) - 預期效果:點了表頭中的 a 連結按鈕(
.mobile-link
)就會讓body
動態加入.open
,之後.aside
選單從左側滑出來,點.aside
中的 a 連結按鈕(.mobile-close
)又滑回去。
語法:
CSS:
.aside
設定絕對定位
用transform
( 或margin
) 設定 X 軸位移的距離 (=寬度)
註:transform
在網頁上的效能比padding
、margin
都好1
2
3
4
5
6
7
8
9.aside{
position: absolute;
top: 0;
bottom: 0;
width: 270px;
height: 100%;;
overflow: hidden;
transform: translateX(-270px);
}- 核心程式碼
1
2
3
4
5
6
7
8.open .main{
transform: translateX(270px);
// 點了 .header 會讓 .menu 往右推 270 px 以容納滑出來的選單
}
.open .aside{
transform: translateX(0px);
// 點了 .header 會讓選單滑入視窗中
} - 選單滑入的動畫效果 —
transition
,可以有影格效果1
2
3
4.main{
...
transition: 0.3s ease;
}
jQ:
1 | $('.mobile-link').click(function(event) { |
好啦,響應式的選單設計就先介紹四種,雖然選單不是響應式設計的全部,但應該算是蠻核心的部分了,其他眉眉角角就等我之後有時間精力再來補寫囉(癱)。