
単純に分岐させるだとか。
やってみるとサイズが合わんかったり色々大変なのです。
※
フリーのBloggerテンプレート「QooQ」のカスタマイズについてまとめています。
参考程度に。
尚、カスタマイズはバックアップを取った上、自己責任で行うようにしてください。
完成イメージ
「Noimage」という仮画像を別途アップロードしています。
画像があるかどうかの分岐作成
「list-item-img」がある場所までジャンプ。「<b:if cond='data:post.thumbnailUrl'>~</b:if>」のところを
「<b:if cond='data:post.thumbnailUrl'>~<b:else/>~</b:if>」に。
以前の記事、
【Blogger/QooQ】トップページ記事一覧:最新記事を大きく表示させる
【Bloggerカスタマイズ】最新記事を大きく表示させる方法
これでとりあえずの分岐はできるので、imgを挿入する、でも良い。が、
ここに直接urlを書くのは少々メンテナンス性に欠ける。
私はcss側にurlを持ってくるように改造することにする。
とりあえず画像がくっつけられれば良い、という人は以下の修正まで。
元のコード
<b:if cond='data:post.thumbnailUrl'> <a expr:href='data:post.url'> <img class='list-item-img' expr:src='resizeImage(data:post.firstImageUrl, 480, "2:1")'/> </a> </b:if>
修正後のコード
<a expr:href='data:post.url'> <b:if cond='data:post.thumbnailUrl'> <img class='list-item-img' expr:src='resizeImage(data:post.firstImageUrl, 480, "2:1")'/> <b:else/> <img class='自由に' src='画像のURL' /> </b:if> </a>
デフォルト画像と通常画像の表示サイズの差異をなくす工夫
さらにdivで一つくくるってだけなんだけども。ちなみに画像サイズは2:1を想定しています。「list-item-img-contents:before」の「padding-top」を適宜変更してください。
元のcss
.list-item-img{
display : block;
width : 100%;
}
修正後のcss
.list-item-img-contents {
position : relative;
width : 100%;
}
.list-item-img-contents:before {
content : "";
display : block;
padding-top : 50%;
}
.list-item-img-contents img {
position : absolute;
top : 0;
left : 0;
bottom : 0;
right : 0;
width : 100%;
height : 100%;
}
.list-item-img-contents div {
position : absolute;
background-image : url(デフォルト画像のurl);
background-repeat : no-repeat;
background-size : contain;
top : 0;
left : 0;
bottom : 0;
right : 0;
width : 100%;
}
先程と同様に、
【Blogger/QooQ】トップページ記事一覧:最新記事を大きく表示させる
【Bloggerカスタマイズ】最新記事を大きく表示させる方法
これで多少は画像差し替えが起きた時など対処しやすいのでは?と。これ以上は今のところわからん。
元のコード
<b:if cond='data:post.thumbnailUrl'> <a expr:href='data:post.url'> <img class='list-item-img' expr:src='resizeImage(data:post.firstImageUrl, 480, "2:1")'/> </a> </b:if>
修正後のコード
<a expr:href='data:post.url'> <b:if cond='data:post.thumbnailUrl'> <div class='list-item-img-contents'><img expr:src='resizeImage(data:post.firstImageUrl,960,"2:1")'/></div> <b:else/> <!-- 画像がないときのデフォルト画像 --> <div class='list-item-img-contents' ><div/></div> </b:if> </a>


