IT総合Wiki
ヘルプ ユーザー登録 ログイン

IT総合Wiki

IT総合Wiki

過去バージョン

この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:3
ページ更新者:ぼうず
更新日時:2026-06-11 07:07:02

タイトル: Bootstrapで両サイドを固定して広告を表示させる方法
SEOタイトル: Bootstrapで左右サイドバー広告を固定表示するレイアウト(position:fixed + 12カラムグリッド実装)

この記事の要点
  • Bootstrap の 12 カラムグリッドで「左広告 2 / メイン 8 / 右広告 2」を組み、左右広告に position:fixed を適用するのが定番パターン
  • モバイル時は広告を非表示にするため d-none d-md-block を付ける
  • 広告を画面の縦中央に置く: top:50%; transform:translateY(-50%);
  • コンテンツとの重なりを避けたい場合は main 側に左右 padding を持たせる
  • 長尺ページではスクロール追従にしつつ、フッターとの衝突を JS で抑制する設計もある

サイドバー固定広告の HTML 構造

Bootstrap 5 のグリッドを使い、3 カラム構成(左広告・メイン・右広告)で組みます。

CSS で広告を固定表示

.ad-left, .ad-right {
  position: fixed;            /* 広告を固定 */
  padding-top: 10px;
  padding-bottom: 10px;
  top: 50%;                   /* 画面の縦中央 */
  transform: translateY(-50%);/* 自分自身の半分上にずらす */
  width: 160px;               /* 標準的なバナー幅 */
}

.ad-left  { left: 0; }
.ad-right { right: 0; }

.main-content {
  padding: 20px;
}

クラス指定の意味

クラス意味
col-lg-2≥992px で 2 カラム幅(12 列中 2 列)
col-md-3≥768px で 3 カラム幅
d-noneすべてのサイズで非表示(初期)
d-md-block≥768px で display:block に戻す

結果として、スマホでは広告非表示・タブレット以上で表示になります。

レスポンシブ動作のおさらい

画面幅左広告メイン右広告
< 768px (sm)非表示全幅非表示
768〜991px (md)3/12 col6/12 col3/12 col
≥ 992px (lg)2/12 col 固定8/12 col2/12 col 固定

スクロール追従にしたい場合

ページが長くて広告を常に追従表示したいなら position:sticky も選択肢になります。

.ad-left, .ad-right {
  position: sticky;
  top: 80px;          /* ヘッダーの高さ分下げる */
  align-self: flex-start;
}

position:sticky は親要素の高さ内でのみ追従するため、Flex/Grid の子要素として配置するのがコツです。

注意点と Tips

  • 横スクロール禁止: 広告幅が col-lg-2 を超えるとレイアウト崩れの原因。広告枠は固定幅 (160 / 200px 程度) を推奨
  • z-index: メインコンテンツのモーダル等と重なる場合は z-index 調整
  • AdSense ポリシー: Google AdSense は position:fixed での固定表示を禁止しているため、AdSense 利用なら sticky か通常配置に
  • Cumulative Layout Shift (CLS): 広告の高さを min-height で確保し、表示時のレイアウト揺れを防ぐ

CWiki

CWiki ヘルプ 問い合わせ

Legal

利用規約 プライバシーポリシー

Feed

サイトマップ ページのフィード 掲示板のフィード

Account

ログイン
© 2017 Libra