はてなブログのテーマをレスポンシブ対応なBrooklynに変えたついでに表示するブラウザの幅を判定して表示する画像を使い分ける仕組みを入れたので、忘れないようにブログに書き残しておきます。
- タイトル画像を使い分けたいと思った理由は、スマホからの見栄えも良くしたかったから
- 必要な条件はレスポンシブ対応テーマなこと
- 事前準備
- ブログにタイトル画像表示用のコードを設定する
- 動作確認
- ブログのモバイル向け設定を変更
- モバイル設定が反映されていることを確認
- 出典・参考サイト
タイトル画像を使い分けたいと思った理由は、スマホからの見栄えも良くしたかったから
はてなブログの通常のタイトル画像設定を行うと上下左右に空白ができてしまって見栄えが今ひとつなので、いくつかのサイトを参考にさせていただき、余白なしで見栄えの良いタイトル画像を設定する仕組みを適用した。
見栄えはバッチリになったものの、スマートフォンで表示するとタイトル画像がバナーみたいに細長くなってしまったため、モバイルの時にもう少し見栄えを良くする方法はないかと考え、画像を使い分けることを思いついた。
また、モバイル環境はなるべく通信データ量が少ない方が良いので、なるべくファイルサイズの小さい画像を使えるというメリットも狙った。
必要な条件はレスポンシブ対応テーマなこと
必要な条件はレスポンシブに対応しているテーマを適用していることだけ。のはず。Brooklynでしか動作確認していないので、悪しからず。
事前準備
タイトル画像を作る
あらかじめ、はてなフォトライフにPC用タイトル画像とモバイル用タイトル画像を作成する。PC用画像のサイズは1000x200、モバイル用はお好みで(当ブログは800x400を採用)。
はてなフォトライフの設定変更
はてなフォトライフは標準設定のままだと横800を超える画像が勝手にリサイズされてしまうので、以下の設定変更を行っておく。
- ブラウザで、はてなフォトライフの設定画面を表示する。
- 設定画面の「フォトライフの設定」枠内にある「画像サイズ」を0ピクセルに変更、「オリジナルサイズ」の画像を保存をチェックして「この内容に変更する」ボタンを押して設定を反映させる。
タイトル写真をはてなフォトライフに格納、リンク情報を取得
はてなフォトライフの任意の場所にPC用画像とモバイル用画像をアップロードする。
アップロード方法は、はてなのヘルプなどを適宜参照いただきたい。
リンク取得方法は以下の通り。
- タイトル画像のあるフォルダの設定画面を表示する。
- タイトル画像を選択しリンクを取得する。
- <a href="フォトライフの画像URL"><img src="タイトル画像URL" alt="画像につけたタイトル名"></a>
ブログにタイトル画像表示用のコードを設定する
ここでポイントになるのが、埋め込むコードが既存のタイトル部分(h1タグ、h2タグ、[デザイン-詳細設定-ヘッダ-タイトル画像]で設定した画像)を全て非表示にし、その代わりの画像を表示させる仕組みであること。
そのコード(後述)をヘッダのタイトル下部分に埋め込めば良い。
コードをヘッダのタイトル下に埋め込む
- 埋め込み用のコードを準備する。
下記のコードをテキストエディタ等に貼り付けて、赤文字箇所をそれぞれ各自の環境に合わせて書き換える。下記のコードの12行目にある「(max-width: 767px)」がブラウザの幅の閾値になっていて、768px未満であればその右に記述したsrcset=""に指定した画像を採用する。768px以上の場合は右の記述を採用しないため、13行目のsrc=""で指定した画像を採用する。
- ブログURL
ブログのトップページのURL - モバイル用タイトル画像URL
事前準備で用意してメモしておいたモバイル用タイトル画像のURL - PC用タイトル画像URL
事前準備で用意してメモしておいたPC用タイトル画像のURL
- <!-- タイトル画像を表示させる -->
- <style type="text/css">
- .header-image-wrapper {display: none; }
- #blog-title{display: none; }
- .headernew img{ max-width: 1120px; margin: auto; display: block; }
- .headernew a{ display: block; background-color: #ffffff; }
- .headernew{ margin: 0px !important; }
- </style>
- <h1 class="headernew">
- <a href="ブログURL">
- <picture>
- <source media="(max-width: 767px)" srcset="モバイル用タイトル画像URL">
- <img src="PC用タイトル画像URL" alt="くまお、遊ぶ。" width="100%">
- </picture>
- </a>
- </h1>
- ブログURL
- [デザイン-詳細設定-ヘッダ-タイトル下]画面を表示する。
- ヘッダの[タイトル下]のテキスト編集枠内に、自分のブログ向けにリンクを書き換え済みのコードを埋め込んで変更を保存する。
動作確認
タイトル下に貼り付けたコードを反映後、改めて自分のブログのトップページを表示し、横幅を狭めたり広げたりして、表示される画像が切り替わるか確認する。
ブラウザの横幅を一定以上広げた場合の表示例
ブラウザの横幅を一定以上狭めた場合の表示例
ブログのモバイル向け設定を変更
ブラウザの幅を狭めた際にモバイル向け画像に切り替わることが確認できたら、ブログのモバイル向け設定をレスポンシブ対応に変更する。
モバイル向け設定でレスポンシブ対応を有効にする
- [デザイン-モバイル向け設定]画面を表示する。
- [詳細設定-レスポンシブデザイン]にチェックを入れ、設定を反映する。
モバイル設定が反映されていることを確認
手持ちのスマートフォンで自分のブログのトップページを表示し、モバイル向けタイトル画像が表示されていることを確認する。
出典・参考サイト
下記リンク先の情報を参考にさせていただきました。
リンク先のブログ管理者の皆さまに感謝申し上げます。
大変助かりました!ありがとうございます!
タイトル画像を余白なしで表示する方法
tukinasikotonoha.hatenablog.com
ブラウザ表示幅で表示する画像を切り替える方法