CaramelTrip

バックエンドエンジニアをメインに、コミュニティ運営・Blog・Video制作などマルチに活動するフリーランスのWEBエンジニアです。 旅・ガジェット・テクノロジー・ライフスタイルの4つのジャンルを中心にニュースやレビューを紹介しています。

BootstrapのNavbar使えた!はてなブログのヘッダーメニューを固定レイアウトにしてレスポンシブ対応。

f:id:parsetree:20180823220758j:plain


はてなブログを見直してて、ヘッダーメニュー(タイトル)をなんとか出来ないかと試行錯誤しました。

結果、BootstrapNavbarをそのまま使えることに気が付き設定してみました。


今このサイトに表示されているヘッダーがBootstrapNavbarです。

画面を下にスクロールしてもヘッダー部だけ固定してくれます。

また、スマホで見るとハンバーガーメニューというスマホ用のメニューに切り替わります。

やっぱこれだね~。


Navbarをはめ込む為に若干の下準備等ありますので、その辺も踏まえて設定方法を記録してきます。

Bootstrap

嫌いな人多いっすけど、僕は大好きです。

なぜなら、フロントのコーディングは苦手だから。www


BootstrapはCSSのフレームワークです。

自分のサイトに適用すれば、かなり簡単に見た目をかっこよくする事ができます。

前提条件

1つだけ条件があります。

  1. レスポンシブ対応のテーマを使っている。

です。


確認するには、

はてなブログの管理画面 > デザイン > スマートフォン > 詳細設定 >

レスポンシブデザインという表示項目があり、チェックが入っていれば大丈夫です。

f:id:parsetree:20180823222241p:plain


レスポンシブデザインという表示項目がない場合は、適用しているテーマがレスポンシブ未対応なのでレスポンシブ対応のテーマに変更する必要があります。


仕組み

仕組みとしてはヘッダーを変更するのではなく既存のヘッダーの上にBootstrapのNavbarを乗せる感じです。

なので、

  1. 既存のヘッダーが隠れるように小さくする

  2. Bootstrapをサイトに適用する

  3. Navbarを乗っける。

というステップになります。


既存のヘッダーを小さくする

今度は、PC側の設定の見直しです。

はてなブログの管理画面 > デザイン > カスタマイズ >

を開いて下さい。スパナのアイコンです。

f:id:parsetree:20180823223132p:plain

背景の画像や、タイトル画像があれば削除して下さい。

画面のヘッダ > タイトル画像 > 表示設定

画像とテキストを表示にチェックを入れて下さい。

これで、ヘッダー部がタイトルだけのシンプルな状態になったと思います。

こんな感じ。 f:id:parsetree:20180823223553p:plain

Bootstrapをサイトに適用する

これは非常に簡単です。

以下のステップで指定箇所にコピペして下さい。

  • CSSの設定

はてなブログの管理画面 > 設定 > 詳細設定 > headに要素を追加のフィールドに以下をコピペして下さい。

<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

<!-- Optional theme -->
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
  • JSの設定

同じくはてなブログの管理画面 > 設定 > 詳細設定 > headに要素を追加のフィールドに以下をコピペして下さい。 →CSSの下にコピペって事です。

※順番関係ありますので、このままコピペして下さい。

<!-- jquery -->
<script src="//code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>

<!-- bootstrap js -->
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>


最後、忘れずに画面下の変更するボタンを押して適用して下さい。


Navbarを乗っけます。

今回はヘッダーが画面上部に固定されるFixed navbarのサンプルを載せておきます。

はてなブログの管理画面 > デザイン > カスタマイズ > ヘッダ > タイトル下のフィールドに以下をコピペして下さい。

<!-- Fixed navbar -->
<nav class="navbar navbar-default navbar-fixed-top">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="#">Project name</a>
        </div>
        <div id="navbar" class="navbar-collapse collapse">
          <ul class="nav navbar-nav">
            <li class="active"><a href="#">Home</a></li>
            <li><a href="#about">About</a></li>
            <li><a href="#contact">Contact</a></li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
              <ul class="dropdown-menu">
                <li><a href="#">Action</a></li>
                <li><a href="#">Another action</a></li>
                <li><a href="#">Something else here</a></li>
                <li role="separator" class="divider"></li>
                <li class="dropdown-header">Nav header</li>
                <li><a href="#">Separated link</a></li>
                <li><a href="#">One more separated link</a></li>
              </ul>
            </li>
          </ul>
          <ul class="nav navbar-nav navbar-right">
            <li><a href="../navbar/">Default</a></li>
            <li><a href="../navbar-static-top/">Static top</a></li>
            <li class="active"><a href="./">Fixed top <span class="sr-only">(current)</span></a></li>
          </ul>
        </div><!--/.nav-collapse -->
      </div>
    </nav>

これで、サイトの既存のヘッダー部にBootstrapのNavbarが乗っかったと思います。

あとは、上記のHTMLを自分好みにゴニョゴニョいじればOK。


適用したあとは、Webの他にスマホからメニューが正常に動いているか確認して下さい。


ちなにみはてなブログでは、メニューがアクティブな時に色を変えるとかの動的な処理は簡単にはできないと思います。

そこまでやる場合は、Wordpressか静的サイトジェネレーターっすかね。


まとめ

ヘッダー部のカスタムを色々とググっても、テーマを無理くりCSSで直してる人が多い気がしました。

テーマを変えたくなかったし、Bootstrapを使っている人はあまり見かけなかったので、参考になれば幸いです。


あと、Navbarは固定式だけじゃないので気になる方は本家のサイトをチェックしてみて下さい。

getbootstrap.com

もし、やってみてうまく動作しない場合は、コメントとかいただければ助言できるかもです。


オススメの記事

www.yantzn.com


tmtm-yagi-007.hatenablog.com


koshian.hateblo.jp