No.3224

No.3216でご紹介した方法は(標準添付スキンの)ギャラリーモード用スキンでは使えません。そのギャラリーモード用スキンを大幅にはカスタマイズせずに同じことを実現したい場合、もし、カテゴリを利用しても構わないなら(=特定のカテゴリに属する投稿だけで、画像にワンクッションを置く……という運用で構わないなら)、以下の方法もあります。
※注:てがろぐ完全構成パッケージに標準添付しているギャラリーモード用スキンでの話です。ギャラリーモードそのものに特別な事情があるわけではないので、スキンの作り方次第でどうにでもなります。
長いので畳んでおきます。
---【デフォルトの内側スキン】---
(標準添付スキンの)ギャラリーモード用スキンでは、投稿本文に含まれる1枚目の画像を表示する部分として、以下のように書いています。
<p class="imagebox">
<!-- ▽投稿本文内の1つ目の画像だけを表示 -->
[[ONEPICT:1]]
</p>
---【内側スキンのカスタマイズ】---
ここに、カテゴリIDだけが得られる記法 [[CATEGORYIDS]] を下記のように加えます。
<p class="imagebox [[CATEGORYIDS]]">
<!-- ▽投稿本文内の1つ目の画像だけを表示 -->
[[ONEPICT:1]]
</p>
すると、もし「カテゴリIDが cushion であるカテゴリ」に属している投稿では、以下のように出力されます。(説明に不要な属性は省略)
<p class="imagebox cushion">
<!-- ▽投稿本文内の1つ目の画像だけを表示 -->
<a class="imagelink" href="画像"><img class="embeddedimage" src="画像"></a>
</p>
※もし複数のカテゴリに属しているなら class="imagebox hogehoge cushion higehige" のような感じで、半角空白文字区切りで全部出力されます。
---【CSSの追記】---
なので、以下のようにCSSを書いておくことで、問答無用でクッション画像に差し替えられます。
.cushion .embeddedimage { display: none; }
.cushion .imagelink {
display: inline-block;
width: 200px;
height: 200px;
background-image: url("クッション画像のURL");
}
上記のCSSの中身は、No.3216でご紹介した方法と同じです。(赤文字のセレクタが異なるだけです。ここは用意したカテゴリIDに変更する必要があります。)
1行目で『本来表示されるハズだった画像』を消して、2~7行目で『代わりのクッション画像』を表示しています。(クッション画像の原寸が表示サイズよりも大きいなら、さらに background-size:contain; 等を加えると良いと思います。)
もしクッション用画像が複数種類あるなら、その分だけカテゴリを増やす必要があります。
なので、「クッション画像を加えるためだけにカテゴリを使いたくない」という場合には使えない方法ですね。
「カテゴリは使いたくないが、ハッシュタグなら使っても良い」という場合には、moka(えむおか)さんによるテクニックもあります。「特定のハッシュタグに続く画像」を対象にするというテクニックですね。なるほど、こんな方法が……と驚きました。(判定用に記述するハッシュタグは、CSSで非表示にすれば、見た目を変えることなく使えそうな気もします。)
畳む 2年以上前(月 18:11:00)