記事に戻る

position: sticky
サイドバー追従デモ

下にスクロールすると、サイドバーが画面の上端付近に貼り付いたまま記事本文に追従し、
記事の終わりに達したところでサイドバーも一緒にスクロールアウトする動きをご確認いただけます。

フロントエンド開発の
ベストプラクティス

1. はじめに

フロントエンド開発は日々進化しており、新しいツールやライブラリが次々と登場しています。本記事では、現代のフロントエンド開発において押さえておきたいベストプラクティスをまとめます。

ここで紹介する内容は、現場で実際に役立つ知見をベースにしています。すべてを一度に取り入れる必要はなく、自分のプロジェクトに合うものから少しずつ取り入れていくのがおすすめです。

このページの右側(PCの場合)には、目次が表示されています。記事をスクロールしても、目次が画面内に追従してついてくることを確認してみてください。これが position: sticky によるサイドバー追従です。

ダミーのコンテンツです。スクロールしながら、サイドバーの動きを観察してみてください。

2. パフォーマンス最適化

ページの読み込み速度は、ユーザー体験に直結する重要な要素です。画像の遅延読み込み、コードスプリッティング、不要な JavaScript の削除など、できることはたくさんあります。

特に Core Web Vitals は、Google の検索ランキングにも影響する重要な指標です。LCP(Largest Contentful Paint)、FID(First Input Delay)、CLS(Cumulative Layout Shift)の3つを意識して計測・改善することが大切です。

ダミーのコンテンツです。サイドバーが追従しているのを確認しながら、さらに下にスクロールしてみてください。記事本文はスクロールに合わせて流れていきますが、サイドバーは画面内に貼り付いたまま動かないはずです。長い記事を読むときに、目次が常に手の届く場所にあるのは便利です。

3. アクセシビリティの考慮

すべてのユーザーが快適に使えるサイトを作るためには、アクセシビリティの考慮が欠かせません。適切な HTML タグの使用、十分なコントラスト比、キーボード操作のサポートなど、基本を押さえることが重要です。

WAI-ARIA を適切に使うことで、スクリーンリーダーを使うユーザーにも情報を正確に伝えられます。ただし、過剰な ARIA 属性はかえって混乱を招くこともあるので、必要な箇所だけにとどめましょう。

ダミーのコンテンツです。サイドバーの動きはどうですか?記事は長いですが、目次が常に見えるおかげで、いま自分がどのあたりを読んでいるか把握しやすくなります。これがサイドバー追従の実用的なメリットです。

4. レスポンシブデザイン

スマートフォンやタブレットでのアクセスが増えている現在、レスポンシブデザインは必須です。メディアクエリを使って、画面サイズに応じてレイアウトを切り替えるのが基本になります。

モバイルファーストで設計することで、小さい画面でも使いやすいデザインを起点に、大きい画面向けの装飾を足していく流れを作れます。

ダミーのコンテンツです。このデモも 767px 以下ではサイドバーが上に移動して、stickyが無効になるように作っています。狭い画面では追従よりも、最初にざっと目次を見せて、本文に集中してもらう方が体験として良くなります。レスポンシブ対応における sticky の使い分けも、押さえておきたいポイントです。

5. CSS設計のコツ

CSS は自由度が高い分、設計が甘いとすぐに保守が難しくなります。BEM や FLOCSS などの命名規則を取り入れることで、長期的に管理しやすいスタイルシートを書けます。

最近では Tailwind CSS のようなユーティリティファーストのアプローチも人気です。プロジェクトの規模やチーム構成に応じて、最適な手法を選ぶことが大切です。

ダミーのコンテンツです。記事も後半に入ってきました。サイドバーは依然として画面内に残っているはずです。実は、サイドバーが追従できているのは、親要素の .layoutalign-items: flex-start が指定されているおかげでもあります。これを忘れると、サイドバーがメインカラムと同じ高さに引き伸ばされて、stickyが見た目上効かなくなります(よくあるハマりどころ)。

6. まとめ

フロントエンド開発のベストプラクティスは多岐にわたりますが、まずは基本を丁寧に押さえることが何より大切です。新しい技術を追いかける前に、HTML/CSS/JavaScript の基礎をしっかり身につけましょう。

ダミーのコンテンツです。記事の最後まで来ました。ここでサイドバーがどうなっているか、確認してみてください。記事が終わるとサイドバーも一緒に消えていく動きが見えるはずです。これは sticky の「親要素の外には出ない」というルール通りの挙動です。

このページは以下の記事のデモです。
デモの使い方や詳細な解説は、記事内でご覧いただけます。