box-shadow を使って、本体の DIV の影をいくつも複製して、それぞれにサイズや色や透過の処理を施す事ができます。 ここでは、本来の影としての『ぼかし処理』は使用せずに、影分身がどういうふうに行われるかが良く解るようにコードを作成しました。
最初の一つ目だけが、border で枠線を引いていますが、影は二つを重ねてボーダーと同じ表現をしています。 影は追加すると、後ろへ重なり隠れます。ですから、ボーダーを作る場合は順序は重要です。 数はいくらでも作成できるので、模様やアイコンを作成するのに有効ですし、複数の DIV や文字そのものも組み合わせて行く事ができます。CSS でアイコンを作るサイト http://one-div.com/
<style type="text/css"> #target1 { /* 最初の DIV にボーダー指定 */ margin: 0 0 0 50px; width: 100px; height: 100px; border-radius: 20px; /* 形状が影にも反映される */ border: solid 5px #909090; -webkit-transform:skew(40deg); -moz-transform:skew(40deg); -ms-transform:skew(40deg); -o-transform:skew(40deg); transform:skew(40deg); } #target2 { /* 最初の DIV */ margin: 0 0 0 50px; width: 100px; height: 100px; border-radius: 20px; border: solid 5px #909090; box-shadow: /* グレーの同じサイズの影 */ 110px 0px 0px 0px rgba(144,144,144,1) ; /* DIV に対する特殊形状効果( 当然影にも反映される ) */ -webkit-transform:skew(40deg); -moz-transform:skew(40deg); -ms-transform:skew(40deg); -o-transform:skew(40deg); transform:skew(40deg); } #target3 { /* 最初の DIV */ margin: 0 0 0 50px; width: 100px; height: 100px; border-radius: 20px; border: solid 5px #909090; box-shadow: /* 白の少し小さい影 */ 110px 0px 0px -5px rgba(255,255,255,1), /* その後ろにグレーでボーダーを再現 */ 110px 0px 0px 0px rgba(144,144,144,1) ; /* DIV に対する特殊形状効果( 当然影にも反映される ) */ -webkit-transform:skew(40deg); -moz-transform:skew(40deg); -ms-transform:skew(40deg); -o-transform:skew(40deg); transform:skew(40deg); } #target4 { /* 最初の DIV */ margin: 0 0 170px 50px; /* 170px は、影のぶんマージンを取って表示場所を確保 */ width: 100px; height: 100px; border-radius: 20px; border: solid 5px #909090; box-shadow: /* 影なので、後ろへ後ろへと重なる */ 110px 0px 0px -5px rgba(240,240,240,1), 160px 50px 0px 0px rgba(255,0,0,1), 210px 100px 0px 0px rgba(0,255,0,1), 260px 150px 0px 0px rgba(0,0,255,1) ; /* DIV に対する特殊形状効果( 当然影にも反映される ) */ -webkit-transform:skew(40deg); -moz-transform:skew(40deg); -ms-transform:skew(40deg); -o-transform:skew(40deg); transform:skew(40deg); } </style> <div id="target1"></div> <div id="target2"></div> <div id="target3"></div> <div id="target4"></div>
コードのテスト http://jsdo.it/sworc/ecgp
タグ:CSS3
|
【CSS3の最新記事】
- CSS/jQuery : 『display:table-cell』 と 『margin:auto』 と 『vertical-align:middle』 を使用して、吹き出し画像の中央に文章を表示する
- CSS の box-shadow を jQuery を使ってスライダーでどうなるか確認して定義文字列を取得できるようにしました
- CSS アニメーションによるハンバーガーアイコンの作成方法と CSS プロパティの意味
- CSS だけで回る、実行中アイコン ( 但し IE9 は不可 ) の指定されたCSSの意味の解説
- 『3D Bouncing Ball with CSS3』のデータを使って光沢ボタンを作成する
- フリーフォントを使った背景透過PNGとCSSを使って、グラデーションな影付き吹き出しやボタンを作る。
- Google ストリートビューを表示している class="gm-style"
- linear-gradient のみで、ほぼ大丈夫なようです(IEは10限定、Windows Safariはアウト)
- 現時点の IE9、IE10、Chrome、Firefox、Opera、Safari でグラデーションの CSS 記述
- CSS で画像が立ってるような影を付けて、画像の角は丸くしておく
- IE 兼用背景 Fade transition の実装
- CSS3 と HTML5 で実装具合の表示テスト - 2 / ( 透過・倍率編 )
- CSS3 と HTML5 で実装具合の表示テスト
- ブラウザ別の角丸とグラデーションの適用状態の比較画像
- CSS3 の borderRadius で、四角から円へのモーフィング
- CSS3 : 絶対位置指定(absolute)を使用して簡単にアニメーション。しかも、適用するのは、JavaScript