1222-A Transform Function Order (trsn

Similar documents
動させることはできません 少し工夫が必要になります 元の画像を移動すれば反射画像 も一緒についてきますが 反射画像だけが移動するように見せたいので 元の画像の上に は黒色のボックスを覆い被せます ReflectAnime1 の説明 HTML の記述 (ReflectAnime1.html) id 属

ように記述をします div1 要素 span 要素 2 個 div3 要素 span 要素 4 個 div5 要素 span 要素 1 個 div7 要素 span 要素 2 個 div2 要素 span 要素 1 個 div4 要素 span 要素 2 個 div6 要素 span 要素 2 個

Color Change

overflow プロパティの指定は 親ボックスのスタイルに記述します overflow プロパティは position プロパティ (position: static; 以外 ) の指定がされていなと適用されません ボックスの外にはみ出た部分を表示させたくないときに hidden を使用します サ

transform: skewx(x 軸の傾斜角度 ) transform: skewy(y 軸の傾斜角度 ) transform: skew(x 軸の傾斜角度, Y 軸の傾斜角度 ) skewx( ) は X 軸に沿って傾斜します skewy( ) は Y 軸に沿って傾斜します skew( ) は

transform: translatex(x 方向の移動距離 ) transform: translatey(y 方向の移動距離 ) transform: translate(x 方向の移動距離, Y 方向の移動距離 ) transform: translate 関数は 移動する位置ではなく 移動

1222-A Transform Function Order (trsn

<!DOCTYPE html> <html> <head> <title>titleanime01</title> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="titleanime01.css"> </hea

子ボックスや孫ボックスなどに position: absolute; と指定すると それぞれ親ボックスに対する絶対位置で配置できるので親ボックスの上に複数の子ボックスや孫ボックスを重ねて配置することができます トランジションやアニメーションを作成するときに非常に便利なので覚えておきましょう top

Color Change

( 注 )Safari (webkit 系ブラウザ ) と Chrome(webkit にも対応 ) は テキストの輪郭や色を -webkit-text-stroke-width -webkit-text-stroke-color -webkit-text-fill-color のプロパティで描くこ

サンプル CSS web ページを開くと同時にピエロの玉乗りが動き出すアニメーションを作ってみましょう AnimeAuto の説明 HTML の記述 (AnimeAuto.html) ピエロの画像に pierrot という id を 玉の画像に ball という id を付けておきます <!DOCT

leaf2-h leaf2-v leaf2 images/leaf2.png leaf3-h leaf3-v leaf3 images/leaf3.png leaf4-h leaf4-v leaf4 images/leaf4.png leaf5-h leaf5-v leaf5 images/leaf

背景の線形グラデーションをアニメーションのように見せる方法は 前章の #div4 ボックスと同じ方法です ( 注 )Safari (webkit 系ブラウザ ) と Chrome(Webkit にも対応 ) は テキストの輪郭や色を -webkit-text-stroke-width -webkit

1222-B Transform Using Class And Tag (classセレクタと要素型セレクタ(Tag)を使用してスタイルを適用する)

</div> </div> </body> </html> CSS の記述 (3DCubeAnime1.css) #stage ステージのスタイルを指定します 背景色を黒色で指定します 画像に軽く遠近感を出すために perspective: 1000px; と指定し perspective-orig

トリガーをわかり易くする方法

MovingTextsAnime1 の説明 HTML の記述 (MovingTextsAnime1.html) id 属性 stage の div 要素 ( アニメーションが動くステージ ) を作り その中にボックスやテキストを記述します id 属性 div1 のdiv 要素から id 属性 div

サンプル CSS1 入力フィールドの輪郭 (outline) のトランジション 入力フィールドをクリックすると変化します InputOutlineTransition の説明 HTML の記述 (InputOutlineTransition.html) id 属性 field の div 要素を作り

サンプル CSS OutlineAnimation.html の説明 HTML の記述 (OutlineAnimation.html) id 属性 stage の div 要素を作り その中に div 要素でボックスを記述します id 属性 div1 の div 要素を記述し 中にテキストで Out

MorphAndTextAnime の説明 HTML の記述 (MorphAndTextAnime.html) id 属性 stage の div 要素を作り その中に div 要素でボックスを記述します id 属性 div1 の div 要素を記述し 中につぎの記述をします id 属性 div2

1つ目は MASK という文字の下に楕円形のマスクイメージで その文字と楕円形の中に複数画像のスライドを表示するので id 属性 slide の div 要素の中に画像を5つ (images/dsc00203l.jpg images/dsc00027l.jpg images/dsc00092l.jp

画像 images/ SpaceShuttle.png を指定します <!DOCTYPE html> <html> <head> <title>circleanime1</title> <meta charset="utf-8"> <link rel="stylesheet" type="text/

Border Width と記述します id 属性 div3 の div 要素を記述し 中にテキストで Border Radius と記述します id 属性 div4 の div 要素を記述し 中に span 要素を1つ記述しその中にテキストで Border All<br />(Color,Widt

<!DOCTYPE html> <html> <head> <title>clipanime1</title> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="clipanime1.css"> </head> <

<!DOCTYPE html> <html> <head> <title>spaceorbitanime</title> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="spaceorbitanime.css">

ボタンのトランジション 1 トランジションを利用して ボタンを作ってみましょう ボタンを工夫することでひときわ光る web ページにすることができます もう Illustrator や Photoshop でボタンの画像を作る必要はありません JavaScript でスクリプトを書く必

画像全体を左右反転させると 下の画像 ( 黄緑色の外枠に白い桜 ) は backface-visibility: visible; と指定してあるので裏側が表示されます 上の画像 ( 水色の外枠に紅葉 ) は backface-visibility: hidden; と指定してあるので裏側が表示され

大メニューをマウスカーソルで hover すると 半透明の小メニューが上から伸びてきます 小メニューを hover すると メニューの背景色とテキストの色が変わります NaviMenuAnime01 の説明 HTML の記述 (NaviMenuAnime01.html) id 属性 menu-box

をさせる ) ような場合に それぞれの要素に id 属性で id 名を指定している場合には CSS の id セレクタごとにアニメーションでプロパティを指定する必要があります class セレクタ.class 名 { プロパティ名 : 値 ; HTML 文書で class 属性 ( class="

メニューのトランジション 1 (text-overflow) トランジションを利用して 面白い個性的なメニューを作ってみましょう web ページもぐっと引き立つでしょう ここで紹介するメニューも Illustrator や Photoshop でメニューの画像を作る必要はありません J

padding( パディング ) padding プロパティでボックスの内側の余白を指定します この部分の内側には背景 ( 背景色や背景画像 ) を表示できます border( ボーダー ) border プロパティでボックスの境界線を指定します ボーダーには色 太さ 線の種類を指定できます 画像で

1221 Transitionの指定項目

1222-A Transform Function Order (trsn

Microsoft Word - 教材WebページのHTML5及びCSS3の解説

images/dsc00092s.jpg images/dsc00131s.jpg images/dsc00149s.jpg images/dsc00203s.jpg <!DOCTYPE html> <html> <head> <title>roundphotogallery</title> <me

Microsoft PowerPoint - CSS(Cascading Style Sheets)の基本.pptx

1221 Transitionの指定項目

第6回 CSS入門(つづき)

スタイルシートでデザインを整えよう

EC 千葉のホームページで使用している CSS CSSスタイルシート ( 外部記載 ) /* == 標示枠背景に壁紙設置 ( 全画面共通 )======= */ body { background-ima

Moshimo Challenge Report

Web 設計入門

World Wide Web =WWW Web ipad Web Web HTML hyper text markup language CSS cascading style sheet Web Web HTML CSS HTML

id, クラスで指定 (#id 名,.class 名 ) 4. 様々なセレクタ a,b :a と b を指定 a b :a の下の階層の b を指定 a>b :a の直下の b を指定 a+b :a の次の b を指定 ab :a かつ b を指定 5. 属性セレクタ a[b] :a タグ内で b

合宿事前講座 Web 開発の基本編その 2 情報研究会モブ 薗田海樹 The. H.30 情報研究会 1

目次 はじめに... 1 CSS?... 3 CSS の例... 4 CSS の基本の形... 5 HTML で CSS を読み込む... 7 <link> タグを置く ( ファイルを読み込む )... 9 <style> タグを置く ( スタイルを直接埋め込む ) セレクタ... 11

IBM Business Process Manager CSS による Coach レイアウト制御ガイド WebSphere 2014 IBM Corporation

要素にフォーカスが当たったときは 例えば以下のように記述する input:focus{} 疑似要素 p:first-lin{ } 一行目だけ p:first-letter{} 最初の文字だけ要素の前や後に付け加えるには 以下のように記述する p:before{content:" 記号や文字 ";}

6 2 s µ µµµ µµµµ µ µ h µs µ µµµµ µ µ µ s mµµµµµ µµµ µµ µ u m µmµµµµµ µµ µ µ µ µ µ µ µ µ s 1

Webデザイン論

ホームページ制作 基礎編 (HTML5 CSS3 コーディング )

演習室の PC のハードディスクには演習で作成したデータは保管できません 各 PC の ネットワーク接続 ショートカットからメディア情報センターのサーバーにアクセスしてください 演習名 使用するフォルダ 演習 1 Z: Web データ管理 演習 1 演習 2 Z: Web データ管

経営論集2011_07_小松先生.indd

Web 設計入門

JIS Web Web JIS JIS 5.1.a 5.1.b 5.2.a 5.2.b 5.2.c 5.2.d 5.2.e 5.2.f 5.2.g 5.3.a 5.3.b 5.3.c 5.3.d 5.3.e 5.3.f 5.3.g 5.3.h 5.3.i 5.4.a 5.4.b 5.4.c 5.4.

~/WWW-local/compIID (WWW IID ) $ mkdir WWW-local $ cd WWW-local $ mkdir compiid 3. Emacs index.html n (a) $ cd ~/WWW/compIID

■新聞記事

(3) 本文を書く 実際にページを開いたときに表示される本文を書いてみましょう から の間に書きます <html > <head > <title > 武のホームページ </title > </head > </html > (4) ページを保存する ここで一度ページを保存してみましょう テキストエ

6 2 1

about かみのごうや たいち 大阪府出身 東京都在中 28歳 うお座 O型 ゾウと写真が好き 2xup.org を管理

1/2

extCountdown.pdf

Web データ管理 HTML+CSS (3) (2 章 ) 2011/10/19( 水 ) 湘南工科大学講義資料 Web データ管理 (2011) 阿倍 1/23

<4D F736F F D A957A A A8FEE95F18F88979D DEC90AC E646F63>

1

Web プログラミング 1 HTML+CSS (3) (2 章 ) 2013/5/8( 水 ) 演習室の PC のハードディスクには演習で作成したデータは保管できません 各 PC の ネットワーク接続 ショートカットからメディア情報センターのサーバーにアクセスしてください (Z ドライブとして使用で

インターネット社会の発展

SVG資料第6回目(その3) SVGとHTMLの間でデータを交換する

_勉強会_丸山さつき_v3

ch31.dvi

PowerPoint プレゼンテーション

extChatText.pdf

JavaScript 演習 2 1

PowerPoint Presentation


目次 概要... 2 フォームレイアウトデザイナー機能の設定... 3 設定したフォームレイアウトデザイナーの確認...14 その他スタイルの設定...15 フォームレイアウトデザイナーをエクスポート...17 フォームレイアウトデザイナーをインポート...18 インポート時の制限事項...19 リ


2. 以下の設問に答えよ 第 11 問 アルファチャンネルの説明として適切なものを 以下より 1 つ選択しなさい 1. 画像の彩度を扱うためのデータ領域 2. 画像の透過度を扱うためのデータ領域 3. 画像の圧縮前のデータを保存した領域 4. 画像の圧縮後のデータを保存した領域 第 12 問 プロポ

Web09

第2回 Web文書

2

この 講 座 で 学 ぶこと 3の 概 要 現 時 点 で 大 体 使 える 機 能 2

Microsoft Word - manual.doc

コンピュータ基礎実習 ( 上級 ) 第 13 週の例では <h1> タグが対象であることを意味します セレクタを変えることで見栄えを様々な対象に設定できます プロパティ (property) は設定する見栄え ( スタイル ) の種類のことです 値はプロパティに対する具体的な設定値です この例では文

27短01研01斉藤.indd

PowerPoint Presentation

css.pdf

目次

! "#$%&'()*+,-. STUV WXYZ[\]^_`abcdefghijklmno pqrstuvwxyz{ }~ ƒ ˆ Š Œ Ž š œ žÿ ª«±²³ µ ¹º»¼½¾ ÀÁÂÃÄ ÅÆÇÈÉÊËÌÍÎÏÐ

Web データ管理 HTML+CSS (7) (2 章 ) 2011/11/16( 水 ) 湘南工科大学講義資料 Web データ管理 (2011) 阿倍 1/15

07_経営論集2010 小松先生.indd

Web概論

( )

コンピュータ基礎実習 ( 上級 ) 第 12 週例では <h1> タグが対象であることを意味します セレクタを変えることで見栄えを様々な対象に設定できます プロパティ (property) は設定する見栄え ( スタイル ) の種類のことです 値はプロパティに対する具体的な設定値です この例では文字

HTML5&CSS3 レッスンブック

Microsoft PowerPoint _2b-DOM.pptx

Taro-ホームページB5.jtd

Sushi Web ページの編集 Card 1 of 10 3 パソコンの画面上で ブラウザとテキストエディタを横に並べます ブラウザ テキストエディタ 4 5 テキストエディタで 自分の自己紹介になるように変更します 変更したらテキストを保存します ( ファイル > 保存 ) 保存したら F5 を

Web 設計入門

Transcription:

1256 Reflect プロパティ (-webkit-box-reflect) -webkit-box-reflect プロパティを使用して反射画像を作ってみましょう webkit の仕様なので Safari Chrome で適用されますが それ以外のブラウザは未対応です (2015 年 11 月 25 日現在 ) -webkit-box-reflect プロパティは 画像が鏡に映って反転 ( 反射画像 ) しているような状態を作ることができます 例えば写真やイラストの画像を hover したときに反射画像を表示したり ビデオ画像に反射画像を付けることもできます 写真やイラストの画像やビデオ画像のサイズをトランジションやアニメーションで変えると それに合わせて反射画像も自動的にサイズが変わります 反射画像は 周りの要素に影響を与えないので 周りの要素の位置がずれたりしません box-shadow プロパティと同じように 周りに覆いかぶさるように描かれます プロパティ -webkit-box-reflect クリッピング領域は要素のボーダーボックスのどの部分を見えるようにするかを決定し ます 値 説 明 反射の方向 above( 上 ) below( 下 ) left( 左 ) right( 右 ) 元の画像と反射画像の隙間の距離 数値 + 単位で指定 正の値は隙間が空き 負の値は元の画像と反射画像が重なる 指定なしは初期値 (0px) と同様 反射画像に適用するマスク URI(URL) で画像ファイルまたはグラデーションを指定 元の画像と反射画像の隙間の距離 と 反射画像に適用するマスク は指定がなくて も構いません 反射画像は要素と同じサイズで描かれ 要素のボーダーやパディングも含まれます border-radius プロパティで要素の角が丸く指定されていれば 反射画像の角も丸く描か 1

れます マスクは反射画像を部分的に透明色や不透明色で描きます マスク画像ファイルは PNG SVG GIF が指定でき 透明色の領域を含む画像を指定します マスクのアルファ値がピクセル単位で反射画像に適用されます 色は何色でもアルファ値だけが反射画像に影響します マスクですから マスクの透明な部分は元の画像は表示されず マスクの色のある部分は元の画像が抜き出されて表示されます マスク画像を作るときには 反射画像ではなく元の要素に掛けるマスク画像を作ります 元の要素にはマスクは掛かりませんが 反射画像はマスクの掛かった要素の反射画像として描かれます マスクにグラデーションを指定する場合は 例えば top が透明で bottom が不透明のグラデーションで指定されると 反射画像にはその逆のグラデーションが描かれます 内部反射画像 反射画像には元の要素の子孫の要素がすべて描かれます もし元の親要素に -webkit-box-reflect を指定して さらにその子要素にも-webkit-box-reflect を指定すると 最初に子要素の反射画像が描かれます この子要素の元の画像と反射画像は 親要素の反射画像の中に描かれます ( サンプルCSS1の5 番目の画像を参照してください ) サンプル CSS1 反射画像を作る ( 静止画像 ) Reflection の説明 HTML の記述 (Reflection.html) id 属性 stage の div 要素を作り その中に div 要素でボックスを記述します id 属性 textreflect1 の div 要素を記述し 中にテキストで このテキストの写像は接して います と記述します id 属性 textreflect2 の div 要素を記述し 中にテキストで このテキストの写像は接して います と記述します id 属性 simplereflect の img 要素を記述し 画像ファイル src="images/dsc00149m.jpg" を 記述します id 属性 maskreflect の img 要素を記述し 画像ファイル src="images/dsc00203m.jpg" を記 述します id 属性 innerreflect の div 要素を記述し 子要素として img 要素で画像ファイル 2

src="images/dsc00092m.jpg" を span 要素でテキスト inner Reflection および br 要素 さらにもう一つ span 要素でテキスト inner Reflection および br 要素を 記述します は半角スペースになります <!DOCTYPE html> <html> <head> <title>reflection</title> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="reflection.css"> </head> <body> <p> CSS3 で写像を作る </p> <div id="stage"> <div id="textreflect1"> このテキストの写像は接しています </div> <div id="textreflect2"> このテキストの写像は離れています </div> <img id="simplereflect" src="images/dsc00149m.jpg"> <img id="maskreflect" src="images/dsc00203m.jpg"> <div id="innerreflect"> <img src="images/dsc00092m.jpg"> <span>inner Reflection</span><br> <span>inner Reflection</span><br></div> </div> </body> </html> CSS の記述 (Reflection.css) 先ず ボックスを描画するための #stage の記述をします #stage { width: 750px; height: 550px; background-color: #FFFFFF; border: solid 1px #000000; position: relative; 次に各種の反射画像を記述をします テキストの反射画像 1 3

-webkit-box-reflect: below; と指定しているので 元のテキストの下に反射テキストが描かれます 元の画像と反射画像の隙間の距離 の指定がないので 元のテキストと反射テキストは接していますが テキストの場合は 文字の高さ (font-size) よりも行の高さ (line-height) が少し大きいので 見た目には少し隙間が空きます 見た目にもぴったりと接するようにしたい場合は 元の画像と反射画像の隙間の距離 にマイナスの値を指定します #textreflect1 { top: 20px; left: 20px; background-color: skyblue; text-align: center; font: bold 32px "MS P ゴシック ", Osaka, " ヒラギノ角ゴ Pro", Verdana; color: red; -webkit-box-reflect: below; テキストの反射画像 2 ここでは-webkit-box-reflect: below 10px と指定されていて 元の画像と反射画像の隙間の距離 に 10px の指定があるので 元のテキストと反射テキストは離れています マスクに-webkit-linear-gradient(top, transparent, white) とグラデーションの指定をしているので 反射テキストは元のテキストにグラデーションのマスクが掛かった状態で下方向に逆向きの状態で描かれます #textreflect2 { top: 100px; left: 20px; background-color: lightgreen; text-align: center; font: bold 32px "MS P ゴシック ", Osaka, " ヒラギノ角ゴ Pro", Verdana; color: blue; -webkit-box-reflect: below 10px -webkit-linear-gradient(top, transparent, white); 4

画像の反射画像 ここでは border-radius: 20px; と指定して画像の4 隅を丸くしているので 反射画像の4 隅も丸く描かれます -webkit-box-reflect: below 0px と指定しているので 元の画像と反射画像は隙間なく接して描かれます マスクに-webkit-linear-gradient(top, transparent, transparent 50%, white); とグラデーションの指定をしているので 反射画像は元の画像の top から transparent 50% までの部分が表示されず transparent 50% から white の部分が徐々に見えてくるようなグラデーションのマスクが掛かった状態で 下方向に逆向きの状態で描かれます #simplereflect { top: 190px; left: 20px; width: 224px; height: 168px; border-radius: 20px; -webkit-box-reflect: below 0px -webkit-linear-gradient(top, transparent, transparent 50%, white); 画像にマスクを掛けた反射画像 元の画像マスク画像反射画像 ここでは -webkit-box-reflect: below 5px url(images/reflectmask1.png); とマスクに画 像ファイル images/reflectmask1.png を指定をしているので 反射画像は元の画像にマス 5

クが掛かった状態で下方向に逆向きの状態で描かれます ( 注 : マスク画像の空白の部分は透明です ) #maskreflect { top: 190px; left: 260px; width: 224px; height: 168px; -webkit-box-reflect: below 5px url(images/reflectmask1.png); 画像と反射画像全体の反射画像( 内部反射画像 ) ここでは親要素の #innerreflect に-webkit-box-reflect : below 20px; と指定しているので 子要素の img 要素の画像と span 要素のテキストが反射画像になります さらに子要素の img 要素に-webkit-box-reflect: below 0px -webkit-linear-gradient(top, transparent, transparent 80%, white); と指定しているので 子要素の img 要素の画像の反射画像も描かれます その結果 左のように反射画像の内部にさらに反射画像が描かれている画像になります #innerreflect { top: 190px; left: 500px; -webkit-box-reflect: below 20px; #innerreflect img { width: 224px; height: 120px; border-radius: 20px; -webkit-box-reflect: below 0px -webkit-linear-gradient(top, transparent, transparent 80%, white); #innerreflect span { font: bold 18px "MS Pゴシック ", Osaka, " ヒラギノ角ゴ Pro", Verdana; color: red; 6

サンプル CSS2 反射画像が変形するトランジションを作ってみましょう ボタンを hover すると 3 つの反射画像がそれぞれ違った変形をしながらトランジション します ReflectTransition の説明 HTML の記述 (ReflectTransition.html) id 属性 stage の div 要素 ( トランジションが動くステージ ) を作り その中にボックスや画像を記述します id 属性 button の div 要素を作ります これがボタン ( 親ボックス ) になります font28gothicb クラスでフォントを指定し Hover を記述します id 属性 image1 の img 要素を記述し 画像ファイル src="images/dsc00203m.jpg" を記述します id 属性 image2 の div 要素を記述し 子要素として画像ファイル src="images/ DummyTrans1X1.png" と span 要素の中にテキスト ABC を記述します id 属性 image3 の div 要素を記述し 子要素として span 要素でテキスト Reflection を 2つ さらにもう一つ span 要素のタグのみを記述します ( 注 :#image2 要素には 直接テキスト ABC を記載して span 要素を使わないのが一般的な指定方法ですが そうすると Safari が反射画像を表示できないようなので 子要素の span 要素の中にテキストを記述しています Chrome は #image2 要素に直接テキストを記述しても問題ありません また #image2 要素にダミーで透明な画像を指定しているのは Safari が span 要素だけでは初期画面で反射画像が表示されず 動き出すと反射画像が表示されるという現象があるので いろいろと試してみた結果 画像が含まれていると初期画面で反射画像が表示されたので ダミーで透明な画像を指定しています Chrome は画像がなくても反射画像が表示されます 2015 年 11 月 25 日現在 ) 7

<!DOCTYPE html> <html> <head> <title>reflecttransition</title> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="reflecttransition.css"> </head> <body> <p> 写像を動かす </p> <div id="stage"> <div id="button"><font class="font28gothicb">hover</font> <img id="image1" src="images/dsc00203m.jpg" alt="green road"> <div id="image2"><img src="images/dummytrans1x1.png" alt="dummy"> <span>abc</span></div> <div id="image3"><span>reflection</span><span>reflection</span> <span></span></div> </div> </div> </body> </html> CSS の記述 (ReflectTransition.css) 先ず トランジションが動く #stage の記述をします #stage { width: 700px; height: 550px; background-color: #000000; position: relative; overflow: hidden; ボタンとなる #button ボックスを記述します #button { top: 20px; left: 297px; width: 100px; height: 50px; border: solid 3px #666666; text-align: center; color: #666666; line-height: 55px; cursor: default; border-radius: 10px; 8

ボタンに表示するテキストのフォントを指定します.font28GothicB { font: bold 28px "MS P ゴシック ", Osaka, " ヒラギノ角ゴ Pro", Verdana; #button ボックス ( ボタン ) を hover したら #button ボックスの背景色を background-color: #555555;( 灰色 ) に Hover の文字を color: #000000;( 黒色 ) 変化させます #button:hover { background-color: #555555; color: #000000; 次に各トランジションの記述をします 反射画像を回転移動させるトランジション 反射画像を回転移動させてみましょう #image1 ボックスは反射画像を右から左へ回転しながら移動するようにしました #image1 ボックスを記述します position は absolute にして 位置は top: 70px; left: 180px;(#button ボックスの左上端を基準とした位置 ) で指定します border-radius: 20px; を指定して4 隅を丸くします position は absolute で指定します -webkit-box-reflect プロパティで反射画像を作り 画像の下半分だけ見えて上へいくにつれて見えなくなるようにグラデーションを指定します transition の記述をします 3 秒で linear で ease-in-out で変化するように記述します #button ボックス ( ボタン ) を hover した時の変化として #image1 要素に left: -280px; へ移動 反時計回りに 360 度回転になるように指定します 9

#image1 { top: 70px; left: 180px; width: 196px; height: 147px; border-radius: 20px; -webkit-box-reflect: below 2px -webkit-linear-gradient(top, transparent, transparent 60%, white); -webkit-transition: 3s ease-in-out; #button:hover #image1 { left: -280px; -webkit-transform: rotatez(-360deg); 反射画像を 3D 横回転させるトランジション 反射画像を 3D 横回転させてみましょう #image2 ボックスを記述します 位置は top: 290px; left: -290px;(#button ボックスの左上端を基準とした位置 ) で指定します position は absolute で指定します -webkit-box-reflect: below 2px -webkit-linear-gradient(top, transparent, transparent 20%, white); を指定し 子要素の img 要素と span 要素を含めて反射画像を描きます image2 ボックスの右端を軸にして横回転させるので -webkit-transform-origin: right center; で指定します 最初の画像は少し回転した状態にしたいので -webkit-transform: perspective(500px) rotatey(60deg); と指定し 画像の右端を軸として60 度回転させます transition の記述をします 3 秒で ease-in-out で変化するように記述します 10

#image2 { top: 290px; left: -290px; width: 180px; height: 80px; -webkit-box-reflect: below 2px -webkit-linear-gradient(top, transparent, transparent 20%, white); -webkit-perspective-origin: 50% 50%; -webkit-transform-origin: right center; -webkit-transform: perspective(500px) rotatey(60deg); -webkit-transition: 3s ease-in-out; 子要素の img 要素でダミーの透明画像を指定します #image2 img { top: 0px; left: 0px; width: 150px; height: 80px; /* 注 :Safari は span 要素だけでは初期画面で反射画像が表示されません 画像が含まれていると表示されるので ダミーで透明な画像を指定しています Chrome は OK */ 子要素の span 要素にはテキストのフォントやスタイルの指定をします #image2 span { top: 0px; left: 0px; width: 180px; height: 80px; text-align: center; font: bold 82px "MS P ゴシック ", Osaka, " ヒラギノ角ゴ Pro", Verdana; line-height: 80px; background-color: skyblue; color: red; text-decoration: underline; -webkit-text-fill-color: red; -webkit-text-stroke-width: 3px; -webkit-text-stroke-color: orange; #button ボックス ( ボタン ) を hover した時の変化として #image2 要素に Y 軸の正の方向 から見て計回りに 330 度回転になるように指定します 11

#button:hover #image2 { -webkit-transform: perspective(500px) rotatey(330deg); 反射画像を傾斜 拡大させるトランジション CSS3の仕様では 反射画像は元の画像と同じサイズで描かれるので 反射画像を傾斜 拡大することはできません しかし そういうトランジションを作ってみたいのは私だけではないと思うので 反射画像を使わない別の方法でそのように見えるトランジションを作ってみます 元のテキストが上方へ遠ざかるにつれて 傾斜して映っている反射テキストが拡大し 色が薄くなります #image3 ボックスは子要素である 3 つの span 要素の基準ボックスとして位置 top: 350px; left: 130px; (#button ボックスの左上端を基準とした位置 ) とサイズ width: 280px; height: 50px; だけ指定します position は absolute で指定します #image3 { top: 350px; left: 130px; width: 280px; height: 50px; #image3 ボックスの 1 つ目の span 要素は ReflectTransition.html にテキスト Reflection が記述してあるので フォントやスタイルの指定をします ( このテキスト が元の画像に相当します )transition の記述をします 3 秒で ease-in-out で変化するよ 12

うに記述します #image3 > span:nth-child(1) { top: 0px; left: 0px; width: 230px; height: 50px; text-align: left; font: bold 48px "MS P ゴシック ", Osaka, " ヒラギノ角ゴ Pro", Verdana; line-height: 66px; color: lightgray; -webkit-transition: 3s ease-in-out; #image3 ボックスの 2 つ目の span 要素も ReflectTransition.html にテキスト Reflection が記述してあるので フォントやスタイルの指定をします ( このテキストが反射画像に相当します ) テキストに遠近感を持たせて傾けたいので -webkit-transform: perspective(500px) rotatex(60deg) scale(1.1, -2.5); と指定しています scale(1.1, -2.5) の Y 方向の値 -2.5 によってテキストが下向に拡大されます X 方向の値に 1.1 を指定しているのは 元のテキストと反射テキストの接している部分の幅を合わせるためです テキストの中心を軸にして60 度傾いているので 反射テキストの底辺部分の幅が元の幅より狭く描かれるため X 方向へも拡大して合わせています transition の記述をします 3 秒で ease-in-out で変化するように記述します #image3 > span:nth-child(2) { top: 50px; left: 0px; width: 230px; height: 50px; text-align: left; font: bold 48px "MS P ゴシック ", Osaka, " ヒラギノ角ゴ Pro", Verdana; line-height: 60px; color: lightgray; -webkit-transform: perspective(500px) rotatex(60deg) scale(1.1, -2.5); -webkit-transition: 3s ease-in-out; #image3 ボックスの 3 つ目の span 要素は 反射画像に相当するテキストにかけるグラデー ションを指定します background-image: -webkit-linear-gradient(bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.5) 30%, rgba(0, 0, 0, 0.8) 60%, rgba(0, 0, 0, 1)); と指定して います -webkit-box-reflect プロパティのマスクと違いグラデーションなので グラデー ションの透明な部分は 2 つ目の span 要素のテキストが見えて グラデーションが上に行く につれて黒色になっていくので 2 つ目の span 要素のテキストが見えなくなります 2 つ 13

目の span 要素のテキストに合わせて遠近感を持たせて傾けたいので -webkit-transform: perspective(500px) rotatex(60deg) scale(1.1, -2.5); と指定しています transition の 記述をします 3 秒で ease-in-out で変化するように記述します #image3 > span:nth-child(3) { top: 50px; left: 0px; width: 220px; height: 50px; background-image: -webkit-linear-gradient(bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.5) 30%, rgba(0, 0, 0, 0.8) 60%, rgba(0, 0, 0, 1)); -webkit-transform: perspective(500px) rotatex(60deg) scale(1.1, -2.5); -webkit-transition: 3s ease-in-out; #button ボックス ( ボタン ) を hover した時の変化として #image3 要素の各 span 要素に次のように指定します 1つ目の span 要素は top: -200px; と指定して上方へ移動させます 2つ目の span 要素は -webkit-transform: perspective(500px) rotatex(60deg) scale(1.5, -4.5); と指定し 60 度傾いたままでサイズを scale(1.5, -4.5) に徐々に拡大します サイズが拡大されるとテキストの底部の方向へも伸びるので 徐々に top: 70px; に移動しテキストの底部の位置が元の位置からずれないようにします opacity: 0.1; を指定して テキストを徐々に見えないように変化させます 3 つ目の span 要素も 2 つ目の soan 要素と同様に -webkit-transform: perspective(500px) rotatex(60deg) scale(1.5, -4.5); と指定し 60 度傾いたままでサイズを scale(1.5, -4.5) に徐々に拡大します サイズが拡大されると span 要素の底部の方向へも伸びるので 徐々に top: 70px; に移動し元の位置からずれないようにします #button:hover #image3 > span:nth-child(1) { top: -200px; #button:hover #image3 > span:nth-child(2) { top: 70px; opacity: 0.1; -webkit-transform: perspective(500px) rotatex(60deg) scale(1.5, -4.5); #button:hover #image3 > span:nth-child(3) { top: 70px; -webkit-transform: perspective(500px) rotatex(60deg) scale(1.5, -4.5); 14