やりたいこと
以下のようなhtmlで、
サイドバーには
- 画面の高さ100%
- position: stickyのように固定
- overflow-y: scrollを適用
を適用させたい
<header class="l-header">header</header> <div class="l-container"> <aside class="l-sidebar"> <div class="l-sidebar__inner"> <ul> <li class="l-sidebar__item">menu</li> <li class="l-sidebar__item">menu</li> <li class="l-sidebar__item">menu</li> <li class="l-sidebar__item">menu</li> <li class="l-sidebar__item">menu</li> <li class="l-sidebar__item">menu</li> <li class="l-sidebar__item">menu</li> <li class="l-sidebar__item">menu</li> <li class="l-sidebar__item">menu</li> <li class="l-sidebar__item">menu</li> <li class="l-sidebar__item">menu</li> <li class="l-sidebar__item">menu</li> </ul> </div> </aside> <main class="l-main"> <p>text</p><p>text</p><p>text</p><p>text</p><p>text</p> <p>text</p><p>text</p><p>text</p><p>text</p><p>text</p> <p>text</p><p>text</p><p>text</p><p>text</p><p>text</p> <p>text</p><p>text</p><p>text</p><p>text</p><p>text</p> <p>text</p><p>text</p><p>text</p><p>text</p><p>text</p> <p>text</p><p>text</p><p>text</p><p>text</p><p>text</p> <p>text</p><p>text</p><p>text</p><p>text</p><p>text</p> <p>text</p><p>text</p><p>text</p><p>text</p><p>text</p> <p>text</p><p>text</p><p>text</p><p>text</p><p>text</p> </main> </div> <footer class="l-footer">footer</footer>
.l-header, .l-footer color: #fff text-align: center height: 50px line-height: 50px background-color: #333 .l-container display: flex .l-sidebar width: 250px min-width: 250px height: 100% &__inner width: 250px min-width: 250px height: 100% position: fixed top: 50px left: 0 overflow-y: scroll background-color: #f00 &__item padding: 20px .l-main width: calc(100% - 250px) background-color: #eee
上記のhtmlとsassでの問題点
- スクロールしたら、サイドバーの上に隙間が空いてしまう(ヘッダーの高さ分、topで下にずらしているから)
- 下までスクロールしたら、fixedで固定している箇所(左側)がフッターの上に来てしまう
試したこと
- position: stickyとoverflow-y: scrollの共存が不可能(親にposition、子にoverflowでも無理)だった
- stickyではなくfixedで固定させようとしたら、下までスクロールした時にフッターの上にかぶってしまい、フッターが一部隠れてしまう
- サイドバーに背景色がついているから、高さを100%にしなければフッターとサイドバーとの空間に隙間が空いているように見えてしまう(vh100%など試してみたが駄目だった)
現状の CSS を追記していただけませんか?

サンプルを追記しました!よろしくお願い致します。

回答2件
あなたの回答
tips
プレビュー