Skip to content

Commit 51ca60c

Browse files
スマートフォンでのスクロールによるページ更新に対応 (#182)
* スマートフォンでのスクロールによるページ更新に対応 #58 * サイドバーが再現なく伸びる問題を修正
1 parent e44da74 commit 51ca60c

1 file changed

Lines changed: 28 additions & 2 deletions

File tree

css/kunai/site/layout.css

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -227,8 +227,22 @@ main {
227227
}
228228

229229
@media (max-width: 768px) {
230+
/*
231+
* スマホでは「ビューポート固定シェル + 内側スクロール」をやめ、
232+
* ドキュメント(html/body)自身をスクローラにする。これによりブラウザの
233+
* 引っ張って更新 (pull-to-refresh) が発火するようになる。
234+
* see: https://github.com/cpprefjp/kunai/issues/58
235+
*/
236+
body {
237+
overflow: visible;
238+
}
239+
230240
body > header {
231241
/* box-shadow: 0px -12px 10px 8px rgba(0, 0, 0, 0.8); GPUメモリ削減のため無効化 */
242+
243+
/* ドキュメントスクロール時もナビバーを追従表示する */
244+
position: sticky;
245+
top: 0;
232246
}
233247

234248

@@ -253,8 +267,13 @@ main {
253267
}
254268
}
255269

256-
main {
257-
overflow-y: scroll;
270+
/* 内側スクローラをやめ、内容の高さぶんだけ伸ばす (スクロールは body 側で行う)。
271+
ベースの `body main { height: … }`(詳細度 0,0,2)に勝つよう body main で指定し、
272+
overflow は両軸まとめて visible にする (片軸だけだと計算値が auto に化けて
273+
スクロールコンテナのまま残るため)。 */
274+
body main {
275+
overflow: visible;
276+
height: auto;
258277

259278
> .container-fluid > .row:first-child {
260279
flex-direction: column;
@@ -285,6 +304,13 @@ main {
285304
// flex-basis: 100dvw;
286305
flex-basis: unset;
287306

307+
/* 高さはベースの 95dvh のままにして際限なく伸びるのを防ぎつつ、パネル内を
308+
縦スクロール可能にしてナビゲーションツリー全体へアクセスできるようにする。
309+
(height: auto にするとツリーが全展開して際限なく伸びてしまう)
310+
see: https://github.com/cpprefjp/kunai/pull/182 のレビュー指摘 */
311+
height: $main-height;
312+
overflow-y: auto;
313+
288314
border: none;
289315

290316
/* box-shadow: 0px 9px 16px 2px rgba(0, 0, 0, 0.8); GPUメモリ削減のため無効化 */

0 commit comments

Comments
 (0)