Blogger:モバイルサイト(7)表示させるウィジェットはPCサイトと別にする

前の関連記事:Blogger:モバイルサイト(6)更新日時の表示などヘッダーの改造


ウィジェットはモバイルサイトと共用可能です。しかしカスタマイズするたびにIEへの対応も考えないといけません。そこでモバイルサイトでは専用にウィジェットを作ることにしました。

PCサイトで共用にするとIEへの対応も考えないといけないので面倒


Blogger:テンプレート編集(5)ウィジェットはインクルードの入れ物で調べたようにモバイルサイトでウィジェットを表示させるためにはmobile属性をyesかonlyにしないと表示されません。

mobile='yes'にするだけでなく、Blogger:ラベル設定(4)モバイルサイトでラベルリストを表示でやったようにモバイルテンプレートをカスタムにしないといけないことも注意が必要です。

同じガジェットが入っているウィジェットは2個以上は表示させないようになっているようです。

2個目のウィジェットをmobile='only'にしなくても'yes'にしているだけで、2個目のウィジェットはPCサイトには表示されませんね。

モバイルサイト専用の「人気の投稿」ウィジェットを作ってそれをカスタマイズする


管理画面→レイアウト、で「人気の投稿」ガジェットを追加します。
Blogger:ラベル設定(1)ラベルのリスト表示参照)

ガジェットを追加する場所はサイドバーがよいと思います。

今度はテンプレート→HTMLの編集にいきます。

一番下までスクロールすると<!-- サイドバー -->と書いてある下にサイドバーにあるウィジェットがまとまってでてきます。

「人気の投稿」ガジェットをいれた2個目のウィジェットであればidがPopularPosts2になったウィジェットがあるはずです。

上のメニューの「ウィジェットへ移動」→PopularPosts2、でも移動できます。

これにmobile='only'の属性を追加します。
<b:widget id='PopularPosts2' locked='false' title='人気の投稿No.10' type='PopularPosts' mobile='only'>
レイアウト画面ではtitleしか表示されずPopularPosts1と区別できないので、自分ルールを作って配置するのがよいでしょう。

私の場合はモバイル専用ウィジェットは全ての下にもっていくことにしました。

テンプレートのHTMLにも<!-- モバイル用人気の投稿 -->のようにコメントをつけておこうと思いましたが、なぜかコメントが消えてしまいますね。

ウィジェットの外にはコメントは保存できないのでしょうか。

サムネイルの大きさを小さくする。投稿タイトルの位置を変更する。


PCサイトでは「人気の投稿」(Popular Posts)のウィジェットに投稿タイトルとサムネイルを表示させています。


モバイルサイトですとこのようにサムネイルの横に投稿タイトルが回りこんできません。

これを回り込ませるようにします。

テンプレートのHTMLで、ウィジェットへ移動→PopularPosts2。

今回はサムネイルしか表示していないのでこのウィジェットの中で<!-- (3) Show only thumbnails -->の部分のみ変更します。
            <!-- (3) Show only thumbnails -->
            <div class='item-thumbnail-only'>
              <b:if cond='data:post.thumbnail'>
                <div class='item-thumbnail'>
                  <a expr:href='data:post.href' target='_blank'>
                    <img alt='' border='0' align='left' expr:height='data:thumbnailSize' expr:src='data:post.thumbnail' expr:width='data:thumbnailSize'/>
                  </a>
                </div>
              </b:if>
              <div class='item-title'><a expr:href='data:post.href'><data:post.title/></a></div>
            </div>
imgタグにalign='left'を追加しました。


これでサムネイルの右側に投稿タイトルが回りこむようになったのですが、タイトルの高さをサムネイルの真ん中の高さにもってきたいです。

text-align: centerみたいに高さでもできると思ったら、高さで中央に持ってくるのはいろいろ難しいみたいでしたので断念しました。

Blogger:モバイルサイト(4)Chromeでモバイルサイトのナビボタンをカスタマイズと同じようにChromeで「要素を検証」をしてあれこれ設定をいじってどうすればよいかを決定します。

サムネイルの右と下、投稿タイトルの上と右にpaddingを入れました。
            <!-- (3) Show only thumbnails -->
            <div class='item-thumbnail-only'>
              <b:if cond='data:post.thumbnail'>
                <div class='item-thumbnail'>
                  <a expr:href='data:post.href' target='_blank'>
                    <img align='left' style='padding-bottom: 5px;padding-right: 10px' alt='' border='0' expr:height='data:thumbnailSize' expr:src='data:post.thumbnail' expr:width='data:thumbnailSize'/>
                  </a>
                </div>
              </b:if>
              <div class='item-title' style='padding-top:10px;padding-right:10px'><a expr:href='data:post.href'><data:post.title/></a></div>
            </div>
結局以上のように変更しました。変更した行をハイライトしています。

こんな感じになりました。

ウィジェットの並び順をPCサイトと変えたいためにも2個目のウィジェットを作成


「最近のコメント」(Feed2)はコードは変更していませんが、モバイルサイトではPCサイトとウィジェットの並び順を変更しようと思い、Blogger:レイアウト編集(4)最近のコメントを表示と同様にして作成してmobile='only'としました。

(mobile='only'にしたウィジェットは編集中のブログをいったん出るとレイアウト画面で表示されなくなります。詳しくはBlogger:モバイルサイト(9)mobile='only'にしたウィジェットに入れたガジェットの設定を変更する方法へ。)

あとは  <b:widget id='Feed2' locked='false' mobile='only' title='最近のコメント' type='Feed'>の並び順をテンプレートのHTMLで変更しました。

参考にしたサイト


HTMLタグ 画像に文字を回り込ませる
imgタグにalign='left'を追加しました。

CSSでボックスの内容物を上下中央揃えにする方法3種。|web bibo
上下中央揃えにすることは不可能ではないようですが、複雑なコードが必要なようです。

次の関連記事:Blogger:モバイルサイト(8)Bloggerのタグではウェブバージョンをモバイル端末からみていることを判別できず

PR

1 件のコメント:

  1. はじめまして。最近Bloggerでブログを書き始めた者です。こちらの記事めちゃくちゃ参考になりました。ありがとうございました。
    私のBlog、Google Analyticsのデータを見ても、Mobileからのアクセスが60%を超えているのでMobile対応を何とかしたいと思っていたところで検索経由で見つけることができました。また他の記事も拝見させていただくかもしれません、

    返信削除