CSS サイドバー固定/スクロール追従させる
情報サイトなどで使われている、要素内でスクロールできるフレームのような固定サイドメニューの作り方と広告などをサイドバーでスクロール追従させる方法を説明します。
1. サイドバー固定
See the Pen
sidemenu by kura (@kuranopen)
on CodePen.
HTML
See the Pen
sidemenu by kura (@kuranopen)
on CodePen.
CSS
See the Pen
sidemenu by kura (@kuranopen)
on CodePen.
- 右側のメイン要素に
margin-left: 220px;
を追加。サイドメニューの横幅分マージンをかけます。 - サイドメニューに
position: fixed;
を追加。サイドメニューが画面に固定されます。 - サイドメニューに
height: 100%;
を追加。高さを指定にしないとスクロールバーが表示されません。 overflow: auto;
をサイドメニューに追加。サイドメニュー内の要素が高さを超えても、スクロールが表示されます。width: 220px;
を追加し、サイドメニューの横幅を指定。
※サイドバーにbox-sizing: border-box;
を指定することで、スクロールバーを要素の幅内に収めることできます。
2. スクロール追従
See the Pen
sidemenu by kura (@kuranopen)
on CodePen.
CSS
.sticky{
position: sticky;
top: 25px;
}
- スクロール追従させたい要素に
position: sticky
を指定 top
で表示位置を調整
※position: sticky
は要素の影響を受けながら固定します。似たposition: fixed
は画面の絶対位置に固定します。