【Blogger/QooQ】トップページ記事一覧:画像なし記事にデフォルトサムネイル画像を表示

2020-12-17

Blogger プログラミング

B!

やりようは色々あって、ブログ内に非表示のimgを入れるとか、
単純に分岐させるだとか。
やってみるとサイズが合わんかったり色々大変なのです。


フリーのBloggerテンプレート「QooQ」のカスタマイズについてまとめています。
参考程度に。

尚、カスタマイズはバックアップを取った上、自己責任で行うようにしてください。





完成イメージ

「Noimage」という仮画像を別途アップロードしています。

画像があるかどうかの分岐作成

「list-item-img」がある場所までジャンプ。
「<b:if cond='data:post.thumbnailUrl'>~</b:if>」のところを
「<b:if cond='data:post.thumbnailUrl'>~<b:else/>~</b:if>」に。

以前の記事、 を実践している場合は2か所、特に記事を分けてないなら1か所修正。

これでとりあえずの分岐はできるので、imgを挿入する、でも良い。が、
ここに直接urlを書くのは少々メンテナンス性に欠ける。
私はcss側にurlを持ってくるように改造することにする。

とりあえず画像がくっつけられれば良い、という人は以下の修正まで。

元のコード

  1. <b:if cond='data:post.thumbnailUrl'>
  2. <a expr:href='data:post.url'>
  3. <img class='list-item-img' expr:src='resizeImage(data:post.firstImageUrl, 480, &quot;2:1&quot;)'/>
  4. </a>
  5. </b:if>

修正後のコード

  1. <a expr:href='data:post.url'>
  2. <b:if cond='data:post.thumbnailUrl'>
  3. <img class='list-item-img' expr:src='resizeImage(data:post.firstImageUrl, 480, &quot;2:1&quot;)'/>
  4. <b:else/>
  5. <img class='自由に' src='画像のURL' />
  6. </b:if>
  7. </a>

デフォルト画像と通常画像の表示サイズの差異をなくす工夫

さらにdivで一つくくるってだけなんだけども。
ちなみに画像サイズは2:1を想定しています。「list-item-img-contents:before」の「padding-top」を適宜変更してください。

元のcss

  1. .list-item-img{
  2. display : block;
  3. width : 100%;
  4. }

修正後のcss

  1. .list-item-img-contents {
  2. position : relative;
  3. width : 100%;
  4. }
  5. .list-item-img-contents:before {
  6. content : "";
  7. display : block;
  8. padding-top : 50%;
  9. }
  10. .list-item-img-contents img {
  11. position : absolute;
  12. top : 0;
  13. left : 0;
  14. bottom : 0;
  15. right : 0;
  16. width : 100%;
  17. height : 100%;
  18. }
  19. .list-item-img-contents div {
  20. position : absolute;
  21. background-image : url(デフォルト画像のurl);
  22. background-repeat : no-repeat;
  23. background-size : contain;
  24. top : 0;
  25. left : 0;
  26. bottom : 0;
  27. right : 0;
  28. width : 100%;
  29. }

先程と同様に、 を実践している場合は2か所、特に記事を分けてないなら1か所修正。
これで多少は画像差し替えが起きた時など対処しやすいのでは?と。これ以上は今のところわからん。

元のコード

  1. <b:if cond='data:post.thumbnailUrl'>
  2. <a expr:href='data:post.url'>
  3. <img class='list-item-img' expr:src='resizeImage(data:post.firstImageUrl, 480, &quot;2:1&quot;)'/>
  4. </a>
  5. </b:if>

修正後のコード

  1. <a expr:href='data:post.url'>
  2. <b:if cond='data:post.thumbnailUrl'>
  3. <div class='list-item-img-contents'><img expr:src='resizeImage(data:post.firstImageUrl,960,&quot;2:1&quot;)'/></div>
  4. <b:else/>
  5. <!-- 画像がないときのデフォルト画像 -->
  6. <div class='list-item-img-contents' ><div/></div>
  7. </b:if>
  8. </a>



ブログランキング・にほんブログ村へ

Translate

魔王と愉快な仲間

このブログを検索

ラベル

ブログ アーカイブ

メッセージ

名前

メール *

メッセージ *

Powered by Blogger.

フリー写真素材ぱくたそ

QooQ