「紙がめくれた効果」というのがあって、右下にナナメの影を入れることで「紙の右下が持ち上がっているように見える」というものです。
「Pz-HatenaBlogCard」とか「Pz-LinkCard」にこの効果を実装したかったのですが、これがなかなか厄介でした。
CSS3のbox-shadowを使ってdiv要素に影をつけ、紙がふわりと浮かんだようなエフェクトをつけるスタイルシートを紹介します。
自分でもHTMLとCSSのファイルをローカルで用意して実験してみると、ちゃんと右下に影ができるのですが、いざWordPress上でやってみると「背景より下」に影が表示されてしまっているようです。
z-index をあれこれいじってみても表示されません。
というか、z-index を0とか1とかにすると、本体のボックスそのものよりも上に影が表示されてしまいます。
テーマの背景をいじってみるとちゃんと影は表示されるのですが、背景が無いのではカードの見栄えどうこうでは無いですね(^-^;
とりあえず、諦めていたのですが。
もう一度チャレンジです。
「ボックスの上に影が出ちゃうなら、その上にもうひとつボックス置けばいいんじゃ?Σ(゚ロ゚)o゙」
とは思っていたので、それをやってみます。
※最初はHTMLで直接書いていたのですが、ビジュアルエディタで編集するとHTMLタグが消えちゃうので画像にしました。
「できたっΣ(゚ロ゚)o゙」
外側を class=”box1″ にして position: relative の影部分が飛んでいかないように囲っています。 class=”box2″ が影を作るための空っぽの div 。一番内側が class=”box3″ 、枠付けて色塗って、z-index を高くしているので、影よりも上位に表示されています。
<div class="box1"> <div class="box2"> <div class="box3"> 紙がめくれた効果 </div> </div> </div>
.box1 { width: 500px; margin: 16px; } .box2 { position:relative; } .box2::after { position:absolute; z-index:0; content:"";height:10px;width:60%; right:12px; bottom:14px; left:auto;transform:skew(3deg) rotate(3deg); -webkit-transform:skew(3deg) rotate(3deg); -moz-transform:skew(3deg) rotate(3deg); box-shadow:0 16px 16px rgba(0,0,0,1); -webkit-box-shadow:0 16px 16px rgba(0,0,0,1); -moz-box-shadow:0 16px 16px rgba(0,0,0,1); } .box3 { position:relative; z-index:1; height: 150px; padding: 8px; border:1px solid #000; background-color: #fff; box-shadow:0px 2px 6px rgba(0, 0, 0, 0.8) , 0px 0px 16px rgba(0, 0, 0, 0.1) inset; }
でも、影付けたいがために、無駄に <div>~</div> が増えちゃいます(^-^;
ただでさえ、無駄な <div>~</div> が多くて見直さないと…と思っていたのに、もうひとつ増やすのもちょっと抵抗があります。(^-^;
それと、一番外側の div で width と margin を指定して、一番内側の div で height と padding を指定して…という感じになってしまって、なんかもう、普通に CSS がごちゃごちゃになりそうです。
やっぱり、「WordPress」で「紙がめくれた効果」は無理なのかなぁ(^-^;
と思っていたところに、ピンポイントな記事が!Σ(゚ロ゚)o゙
記事「[CSS]box-shadowを使って洗練されたエフェクトを加える二つのテクニック | コリス」等において、紙がめくれたようにするためのCSSが紹介されていますが、私の認識だと、ほとんどのテーマでは適用できません。
comemo紙がめくれたようにするCSSを WordPress.com のテーマに適用する際に注意したほう...https://comemo508.wordpress.com/2012/12/23/紙がめくれたようにするcssを-wordpress-com-のテーマに適用す/影が表示されないときは、親要素に「z-index:1;position:relative;」を追加したら、うまくいくかも、という話です。
そうそう、「ほとんどのテーマでは適用できません」、そのまんまの認識でした。
そして、「親要素に『z-index:1;position:relative;』を追加すれば適用できるように」と書いてありました。
ここでの「親要素」っていうのは、つまりは記事が表示される領域、自分が「背景」と呼んでいたところです。
テーマ「Twenty Eleven」を使っていたら .entry-content と .entry-summary に position: relative; z-index: 1; を与えて、うまく表示されたようです。
んー、これをなるべく開く適用されるように…こんな感じにしてみます。
article { position: relative; z-index: 1; }
おお、この状態だと、無駄に影用の div と、カード表示用の div とか用意しなくてもちゃんと表示されました!Σ(゚ロ゚)o゙
というわけで、定型書式「紙がめくれた効果」を選んだときには、 article の z-index をいじるように変更しました。
定型書式「テープと紙めくれ」も追加しました。
テーマによっては表示に不具合が出る場合があります。その場合、「紙めくれ」とは組み合わせられません。
次回のバージョンアップで「Pz-LinkCard」に実装します。
では(^-^)o
コメント