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

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

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

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

Color Change

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1221 Transitionの指定項目

1222-A Transform Function Order (trsn

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

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

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

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

Color Change

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

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

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

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

1222-A Transform Function Order (trsn

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

1221 Transitionの指定項目

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

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

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

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

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

Moshimo Challenge Report

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


Webデザイン論

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

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

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

27短01研01斉藤.indd

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

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

第6回 CSS入門(つづき)

PowerPoint Presentation

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

6 2 1

■新聞記事

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

PowerPoint プレゼンテーション

Web 設計入門

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

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

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

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

ch31.dvi

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

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.

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

PowerPoint Presentation

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

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

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

超簡単にWebページを作成

Network Computing の基礎

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

Web概論

スライド 1

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

Microsoft PowerPoint - css-3days 互換モード

観光情報論 第6講 (着地情報)トラベルキオスク & 画像を入れる

_勉強会_丸山さつき_v3

( )

Web 設計入門

Microsoft PowerPoint - css-3days 互換モード

JavaScript 演習 2 1

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

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

1


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

第2回 Web文書

Microsoft PowerPoint - css-3days.ppt [互換モード]

extChatText.pdf

1/2

Web

extCountdown.pdf


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

2

r6.dvi

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

ブロックの 1 文字目のを変更する セレクタ : first-letter { 1 文字目のを指定するフォントや文字色 背景色 枠線などの ブロックの 1 文字目を字下げする text-indent: 字下げ幅段落の1 文字目の字下げ幅を指定する em( 標準 1em) px( ピクセル ) pt(

Transcription:

1342-7 応用 1 Rotate 3D Cube 3D Cube が回転するアニメーション サンプル CSS1 CSS3 で 3D の Cube を描いて回転させてみましょう 3DCubeAnime1 の説明 HTML の記述 (3DCubeAnime1.html) id 属性 stage の div 要素を作り その中に div 要素でボックスを記述します id 属性 cube の div 要素を記述し 中に span 要素で 6 面に表示する数字を記述します <!DOCTYPE html> <html> <head> <title>3dcubeanime1</title> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="3dcubeanime1.css"> </head> <body> <p> 3D Cube を描いて回転させる </p> <div id="stage"> <div id="cube"> <span>3</span> <span>2</span> <span>4</span> <span>5</span> <span>1</span> <span>6</span> 1

</div> </div> </body> </html> CSS の記述 (3DCubeAnime1.css) #stage ステージのスタイルを指定します 背景色を黒色で指定します 画像に軽く遠近感を出すために perspective: 1000px; と指定し perspective-origin: 50% 5%; と指定します #stage { width: 500px; height: 500px; background-color: black; position: relative; perspective: 1000px; -webkit-perspective: 1000px; perspective-origin: 50% 5%; -webkit-perspective-origin: 50% 5%; 3D Cube を描く起点となる #cube ボックスのスタイルを指定します position は absolute 位置は top: 150px; left: 150px;(#stage ボックスの左上端を起点とした位置 ) で指定します width と height は指定しないので大きさゼロのボックスになります 子要素の span 要素を #cube とは別に3Dにして動かすので transform-style: preserve-3d; と指定します 3D Cube の回転の起点を6 面体 (1 辺が 200px) の中心に配置するため transform-origin: 100px 100px; と指定します アニメーション名を goroundanime 実行時間を 30s イージングを linear 開始待ち時間を 0s 繰り返しを infinite 実行方向は normal で指定します #cube { top: 150px; left: 150px; transform-style: preserve-3d; -webkit-transform-style: preserve-3d; transform-origin: 100px 100px; 2

-webkit-transform-origin: 100px 100px; animation: goroundanime 30s linear 0s infinite normal; -webkit-animation: goroundanime 30s linear 0s infinite normal; アニメーション名 goroundanime に対応するタイムライン (@keyframes) を指定します 0% から 100% の間に transform: rotatex(720deg) rotatey(-360deg);x 軸の正方向から見て時計回りに 720 度まで回転させ Y 軸の正方向から見て反時計回りに 360 度まで回転させます @keyframes goroundanime { 0% { transform: rotatex(0deg) rotatey(0deg); 100% { transform: rotatex(720deg) rotatey(-360deg); @-webkit-keyframes goroundanime { 0% { -webkit-transform: rotatex(0deg) rotatey(0deg); 100% { -webkit-transform: rotatex(720deg) rotatey(-360deg); つぎに 3D Cube の 6 面体の指定をしますが 完成したイメージはこのようになります 以下の span 要素のスタイルの指定内容と本図の 6 面体の各面の色と数字を照らし合わせてみると 3D Cube の作り方の理解がし易いと思います 3D Cube の 6 面体になる #cube > span のスタイルを指定します position は absolute 位 置は top: 0px; left: 0px;(#cube ボックスの左上端を起点とした位置 ) で指定します width は 200px height は 200px で指定します opacity: 0.8; で半透明にします 6 面体に表示する文字のスタイルを text-align: center; font: bold 160px Verdana; line-height: 180px; で指定します 3

#cube > span { top: 0px; left: 0px; width: 200px; height: 200px; opacity: 0.8; text-align: center; font: bold 160px Verdana; line-height: 180px; 1つ目の span 要素 ( 3 の面) のスタイルを指定します 背景色を background-color: yellow;( 黄色 ) 文字色を color: red;( 赤色 ) で指定します transform: rotatey(-0deg) translatez(100px); で 面を Z 方向に 100px 奥へ移動した位置に配置します #cube > span:nth-child(1) { background-color: yellow; color: red; transform: rotatey(-0deg) translatez(100px); -webkit-transform: rotatey(-0deg) translatez(100px); 2つ目の span 要素 ( 2 の面) のスタイルを指定します 背景色を background-color: blue; ( 青色 ) 文字色を color: blueviolet;( 赤紫色 ) で指定します transform: rotatey(-90deg) translatez(100px); で 面を Y 軸の正方向から見て反時計回りに 90 度回転させ Z 方向に 100px 奥へ移動した位置に配置します #cube > span:nth-child(2) { background-color: blue; color: blueviolet; transform: rotatey(-90deg) translatez(100px); -webkit-transform: rotatey(-90deg) translatez(100px); 3つ目の span 要素 ( 4 の面) のスタイルを指定します 背景色を background-color: orange;( オレンジ色 ) 文字色を color: blue;( 青色 ) で指定します transform: rotatey(-180deg) translatez(100px); で 面を Y 軸の正方向から見て反時計回りに 180 度回転させ Z 方向に 100px 奥へ移動した位置に配置します 4

#cube > span:nth-child(3) { background-color: orange; color: blue; transform: rotatey(-180deg) translatez(100px); -webkit-transform: rotatey(-180deg) translatez(100px); 4つ目の span 要素 ( 5 の面) のスタイルを指定します 背景色を background-color: green;( 緑色 ) 文字色を color: orange;( オレンジ色 ) で指定します transform: rotatey(-270deg) translatez(100px); で 面を Y 軸の正方向から見て反時計回りに 270 度回転させ Z 方向に 100px 奥へ移動した位置に配置します #cube > span:nth-child(4) { background-color: green; color: orange; transform: rotatey(-270deg) translatez(100px); -webkit-transform: rotatey(-270deg) translatez(100px); 5つ目の span 要素 ( 1 の面) のスタイルを指定します 背景色を background-color: blueviolet;( 青紫色 ) 文字色を color: green;( 緑色 ) で指定します transform: rotatex(90deg) translatez(100px); で 面を X 軸の正方向から見て時計回りに 90 度回転させ Z 方向に 100px 奥へ移動した位置に配置します #cube > span:nth-child(5) { background-color: blueviolet; color: green; transform: rotatex(90deg) translatez(100px); -webkit-transform: rotatex(90deg) translatez(100px); 6 つ目の span 要素 ( 6 の面 ) のスタイルを指定します 背景色を background-color: red; ( 赤色 ) 文字色を color: yellow;( 黄色 ) で指定します transform: rotatex(90deg) rotatey(180deg) translatez(100px); で 面を X 軸の正方向 から見て時計回りに 90 度回転させ Y 軸の正方向から見て時計回りに 180 度回転させ Z 方向に 100px 奥へ移動した位置に配置します ( 注 :Y 軸の正方向から見て時計回りに 180 度回転させるのは 6 の面を 6 面体の外から見た時に文字が左右逆になるのを補正する ためです ) 5

#cube > span:nth-child(6) { background-color: red; color: yellow; transform: rotatex(90deg) rotatey(180deg) translatez(100px); -webkit-transform: rotatex(90deg) rotatey(180deg) translatez(100px); 丸い面の 3D Cube が回転するアニメーション サンプル CSS2 丸い面の 3D Cube を描いて回転させてみましょう 3DCubeAnime2 の説明 HTML の記述 (3DCubeAnime2.html) ベースは 3DCubeAnime1.html なので 違う部分だけ説明します タイトルを <title>3dcubeanime2</title> にします スタイルシートの指定を <link rel="stylesheet" type="text/css" href="3dcubeanime2.css"> にします <!DOCTYPE html> <html> <head> <title>3dcubeanime2</title> 6

<meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="3dcubeanime2.css"> </head> <body> <p> 3D Cube を描いて回転させる </p> <div id="stage"> <div id="cube"> <span>3</span> <span>2</span> <span>4</span> <span>5</span> <span>1</span> <span>6</span> </div> </div> </body> </html> CSS の記述 (3DCubeAnime2.css) 3DCubeAnime1.css と違う部分だけ説明します 3D Cube の6 面体になる #cube > span のスタイルに border-radius: 50%; を追加して面を円形にします #cube > span { top: 0px; left: 0px; width: 200px; height: 200px; border-radius: 50%; opacity: 0.8; text-align: center; font: bold 160px Verdana; line-height: 180px; 上記以外の項目は 3DCubeAnime1.css と同じです 7

フレームの 3D Cube が回転するアニメーション サンプル CSS3 フレームの 3D Cube を描いて回転させてみましょう RotateCubeFrame1 の説明 HTML の記述 (RotateCubeFrame1.html) ベースは 3DCubeAnime1.html なので 違う部分だけ説明します タイトルを <title>rotatecubeframe1</title> にします スタイルシートの指定を <link rel="stylesheet" type="text/css" href="rotatecubeframe1.css"> にします <!DOCTYPE html> <html> <head> <title>rotatecubeframe1</title> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="rotatecubeframe1.css"> </head> <body> <p> 3D Cube( フレーム ) を描いて回転させる </p> <div id="stage"> <div id="cube"> <span>3</span> <span>2</span> <span>4</span> <span>5</span> <span>1</span> <span>6</span> </div> 8

</div> </body> </html> CSS の記述 (RotateCubeFrame1.css) 3DCubeAnime1.css と違う部分だけ説明します 3D Cube の6 面体になる #cube > span のスタイルの次の項目を追加変更します width と height を 196px にします border を border: solid 2px gray; にします #cube > span { top: 0px; left: 0px; width: 196px; height: 196px; border: solid 2px gray; text-align: center; font: bold 160px Verdana; line-height: 180px; #cube > span:nth-child(1) から #cube > span:nth-child(6) の背景色 background-color の 指定はしません #cube > span:nth-child(1) { color: red; transform: rotatey(-0deg) translatez(100px); -webkit-transform: rotatey(-0deg) translatez(100px); #cube > span:nth-child(2) { color: blueviolet; transform: rotatey(-90deg) translatez(100px); -webkit-transform: rotatey(-90deg) translatez(100px); #cube > span:nth-child(3) { color: blue; transform: rotatey(-180deg) translatez(100px); -webkit-transform: rotatey(-180deg) translatez(100px); #cube > span:nth-child(4) { color: orange; 9

transform: rotatey(-270deg) translatez(100px); -webkit-transform: rotatey(-270deg) translatez(100px); #cube > span:nth-child(5) { color: green; transform: rotatex(90deg) translatez(100px); -webkit-transform: rotatex(90deg) translatez(100px); #cube > span:nth-child(6) { color: yellow; transform: rotatex(90deg) rotatey(180deg) translatez(100px); -webkit-transform: rotatex(90deg) rotatey(180deg) translatez(100px); 上記以外の項目は 3DCubeAnime1.css と同じです 丸い面のフレームの 3D Cube が回転するアニメーション サンプル CSS4 丸い面のフレームの 3D Cube を描いて回転させてみましょう RotateCubeFrame2 の説明 HTML の記述 (RotateCubeFrame2.html) ベースは RotateCubeFrame1.html なので 違う部分だけ説明します 10

タイトルを <title>rotatecubeframe2</title> にします スタイルシートの指定を <link rel="stylesheet" type="text/css" href="rotatecubeframe2.css"> にします <!DOCTYPE html> <html> <head> <title>rotatecubeframe2</title> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="rotatecubeframe2.css"> </head> <body> <p> 3D Cube( フレーム ) を描いて回転させる </p> <div id="stage"> <div id="cube"> <span>3</span> <span>2</span> <span>4</span> <span>5</span> <span>1</span> <span>6</span> </div> </div> </body> </html> CSS の記述 (RotateCubeFrame2.css) RotateCubeFrame1.css と違う部分だけ説明します 3D Cube の6 面体になる #cube > span のスタイルに border-radius: 50%; を追加して面を円形にします #cube > span { top: 0px; left: 0px; width: 196px; height: 196px; border: solid 2px gray; border-radius: 50%; text-align: center; font: bold 160px Verdana; line-height: 180px; 上記以外の項目は RotateCubeFrame1.css と同じです 11

サイコロの 3D Cube が回転するアニメーション サンプル CSS5 サイコロの 3D の Cube を描いて回転させてみましょう RotateCubeDice の説明 HTML の記述 (RotateCubeDice.html) id 属性 stage の div 要素を作り その中に div 要素でボックスを記述します id 属性 cube の div 要素を記述し 中に6 面になる id 属性 num1 から num6 の div 要素を記述します id 属性 num1 から num6 の div 要素はつぎの順番で記述し それぞれの div 要素の中にサイコロの目になる span 要素を記述します div 要素の id 属性の順番 span 要素の数 num3 3 num2 2 mun4 4 num5 5 num1 1 num6 6 <!DOCTYPE html> <html> <head> <title>rotatecubedice</title> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="rotatecubedice.css"> </head> 12

<body> <p> 3D Cube( サイコロ ) を描いて回転させる </p> <div id="stage"> <div id="cube"> <div id="num3"><span></span><span></span><span></span></div> <div id="num2"><span></span><span></span></div> <div id="num4"><span></span><span></span><span></span><span></span></div> <div id="num5"><span></span><span></span><span></span><span></span><span></span></div> <div id="num1"><span></span></div> <div id="num6"><span></span><span></span><span></span><span></span><span></span><span></spa n></div> </div> </div> </body> </html> CSS の記述 (RotateCubeDice.css) #stage ステージのスタイルを指定します 背景色を黒色で指定します 画像に軽く遠近感を出すために perspective: 1000px; と指定し perspective-origin: 50% 5%; と指定します #stage { width: 500px; height: 500px; background-color: black; position: relative; perspective: 1000px; -webkit-perspective: 1000px; perspective-origin: 50% 5%; -webkit-perspective-origin: 50% 5%; 3D Cube を描く起点となる #cube ボックスのスタイルを指定します position は absolute 位置は top: 150px; left: 150px;(#stage ボックスの左上端を起点とした位置 ) で指定し ます width と height は指定しないので大きさゼロのボックスになります 子要素の span 要素を #cube とは別に 3D にして動かすので transform-style: preserve-3d; と指定します 3D Cube の回転の起点を 6 面体 (1 辺が 200px) の中心に配置するため transform-origin: 100px 100px; と指定します アニメーション名を goroundanime 実行時間を 30s イージングを linear 開始待ち時間 13

を 0s 繰り返しを infinite 実行方向は normal で指定します #cube { top: 150px; left: 150px; transform-style: preserve-3d; -webkit-transform-style: preserve-3d; transform-origin: 100px 100px; -webkit-transform-origin: 100px 100px; animation: goroundanime 30s linear 0s infinite normal; -webkit-animation: goroundanime 30s linear 0s infinite normal; アニメーション名 goroundanime に対応するタイムライン (@keyframes) を指定します 0% から 100% の間に transform: rotatex(720deg) rotatey(-360deg);x 軸の正方向から見て時計回りに 720 度まで回転させ Y 軸の正方向から見て反時計回りに 360 度まで回転させます @keyframes goroundanime { 0% { transform: rotatex(0deg) rotatey(0deg); 100% { transform: rotatex(720deg) rotatey(-360deg); @-webkit-keyframes goroundanime { 0% { -webkit-transform: rotatex(0deg) rotatey(0deg); 100% { -webkit-transform: rotatex(720deg) rotatey(-360deg); 3D Cube の6 面体になる #cube div のスタイルを指定します position は absolute 位置は top: 0px left: 0px;(#cube ボックスの左上端を起点とした位置 ) で指定します width は 198px height は 198px で指定します ボーダーを border: solid 1px gray;( 灰色 ) で指定します 背景色を background-color: #FFFFDD;( クリーム色 ) で指定します #cube div { top: 0px; left: 0px; width: 198px; height: 198px; border: solid 1px gray; background-color: #FFFFDD; サイコロの目の共通仕様を指定します #num1 span( 大きな赤丸 ) と #num2 span から #num6 14

span まで ( 小さな黒丸 ) を分けて指定します #num1 span { width: 80px; height: 80px; border-radius: 50%; background-color: red; #num2 span, #num3 span, #num4 span, #num5 span, #num6 span { width: 40px; height: 40px; border-radius: 50%; background-color: black; #cube #num3( 3 の目 の面 ) と目の黒丸になる span 要素のスタイルを指定します #cube #num3 は transform: rotatey(-0deg) translatez(100px); で 面を Z 方向に 100px 奥へ移動した位置に配置します span 要素は面上の位置を指定します /* Number 3 *********************************************************/ #cube #num3 { transform: rotatey(-0deg) translatez(100px); -webkit-transform: rotatey(-0deg) translatez(100px); #cube #num3 > span:nth-child(1) { top: 30px; left: 30px; #cube #num3 > span:nth-child(2) { top: 80px; left: 80px; #cube #num3 > span:nth-child(3) { top: 130px; left: 130px; #cube #num2( 2の目 の面 ) と目の黒丸になる span 要素のスタイルを指定します #cube #num2 は transform: rotatey(-90deg) translatez(100px); で 面を Y 軸の正方向から見て反時計回りに 90 度回転させ Z 方向に 100px 奥へ移動した位置に配置します span 要素は面上の位置を指定します /* Number 2 *********************************************************/ #cube #num2 { transform: rotatey(-90deg) translatez(100px); -webkit-transform: rotatey(-90deg) translatez(100px); 15

#cube #num2 > span:nth-child(1) { top: 40px; left: 40px; #cube #num2 > span:nth-child(2) { top: 120px; left: 120px; #cube #num4( 4の目 の面 ) と目の黒丸になる span 要素のスタイルを指定します #cube #num4 は transform: rotatey(-180deg) translatez(100px); で 面を Y 軸の正方向から見て反時計回りに 180 度回転させ Z 方向に 100px 奥へ移動した位置に配置します span 要素は面上の位置を指定します /* Number 4 *********************************************************/ #cube #num4 { transform: rotatey(-180deg) translatez(100px); -webkit-transform: rotatey(-180deg) translatez(100px); #cube #num4 > span:nth-child(1) { top: 30px; left: 30px; #cube #num4 > span:nth-child(2) { top: 30px; left: 130px; #cube #num4 > span:nth-child(3) { top: 130px; left: 30px; #cube #num4 > span:nth-child(4) { top: 130px; left: 130px; #cube #num5( 5の目 の面 ) と目の黒丸になる span 要素のスタイルを指定します #cube #num5 は transform: rotatey(-270deg) translatez(100px); で 面を Y 軸の正方向から見て反時計回りに 270 度回転させ Z 方向に 100px 奥へ移動した位置に配置します span 要素は面上の位置を指定します /* Number 5 *********************************************************/ #cube #num5 { transform: rotatey(-270deg) translatez(100px); -webkit-transform: rotatey(-270deg) translatez(100px); #cube #num5 > span:nth-child(1) { top: 30px; left: 30px; 16

#cube #num5 > span:nth-child(2) { top: 30px; left: 130px; #cube #num5 > span:nth-child(3) { top: 80px; left: 80px; #cube #num5 > span:nth-child(4) { top: 130px; left: 30px; #cube #num5 > span:nth-child(5) { top: 130px; left: 130px; #cube #num1( 1の目 の面 ) と目の黒丸になる span 要素のスタイルを指定します #cube #num1 は transform: rotatex(90deg) translatez(100px); で 面を X 軸の正方向から見て時計回りに 90 度回転させ Z 方向に 100px 奥へ移動した位置に配置します span 要素は面上の位置を指定します /* Number 1 *********************************************************/ #cube #num1 { transform: rotatex(90deg) translatez(100px); -webkit-transform: rotatex(90deg) translatez(100px); #cube #num1 > span:nth-child(1) { top: 60px; left: 60px; #cube #num6( 6の目 の面 ) と目の黒丸になる span 要素のスタイルを指定します #cube #num6 は transform: rotatex(90deg) rotatey(180deg) translatez(100px); で 面を X 軸の正方向から見て時計回りに 90 度回転させ Y 軸の正方向から見て時計回りに 180 度回転させ Z 方向に 100px 奥へ移動した位置に配置します ( 注 :Y 軸の正方向から見て時計回りに 180 度回転させるのは 6 の面を6 面体の外から見た時に左右逆になるのを補正するためです )span 要素は面上の位置を指定します /* Number 6 *********************************************************/ #cube #num6 { transform: rotatex(90deg) rotatey(180deg) translatez(100px); -webkit-transform: rotatex(90deg) rotatey(180deg) translatez(100px); #cube #num6 > span:nth-child(1) { top: 30px; left: 30px; 17

#cube #num6 > span:nth-child(2) { top: 30px; left: 80px; #cube #num6 > span:nth-child(3) { top: 30px; left: 130px; #cube #num6 > span:nth-child(4) { top: 130px; left: 30px; #cube #num6 > span:nth-child(5) { top: 130px; left: 80px; #cube #num6 > span:nth-child(6) { top: 130px; left: 130px; 画像の 3D Cube が回転するアニメーション サンプル CSS6 画像の 3D の Cube を描いて回転させてみましょう 18

RotateCubePic の説明 HTML の記述 (RotateCubePic.html) id 属性 stage の div 要素を作り その中に div 要素でボックスを記述します id 属性 cube の div 要素を記述し 中に6 面体になる span 要素及びその中に画像を指定します 画像は縦 200px 横 200px の画像を使用します <!DOCTYPE html> <html> <head> <title>rotatecubepic</title> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="rotatecubepic.css"> </head> <body> <p> 3D Cube( 画像 ) を描いて回転させる </p> <div id="stage"> <div id="cube"> <span><img src="images/dsc00189 sq200px.jpg" alt="flying carps"></span> <span><img src="images/dsc00027 sq200px.jpg" alt="wall paint"></span> <span><img src="images/dsc00203 sq200px.jpg" alt="green load"></span> <span><img src="images/dsc00131 sq200px.jpg" alt="water fall"></span> <span><img src="images/dsc00007 sq200px.jpg" alt="red leaves"></span> <span><img src="images/dsc00095 sq200px.jpg" alt="cherry blossoms"></span> </div> </div> </body> </html> CSS の記述 (RotateCubePic.css) #stage ステージのスタイルを指定します 背景色を黒色で指定します 画像に軽く遠近感を出すために perspective: 1000px; と指定し perspective-origin: 50% 5%; と指定します #stage { width: 500px; height: 500px; background-color: black; position: relative; perspective: 1000px; -webkit-perspective: 1000px; perspective-origin: 50% 5%; -webkit-perspective-origin: 50% 5%; 19

3D Cube を描く起点となる #cube ボックスのスタイルを指定します position は absolute 位置は top: 150px; left: 150px;(#stage ボックスの左上端を起点とした位置 ) で指定します width と height は指定しないので大きさゼロのボックスになります 子要素の span 要素を #cube とは別に3Dにして動かすので transform-style: preserve-3d; と指定します 3D Cube の回転の起点を6 面体 (1 辺が 200px) の中心に配置するため transform-origin: 100px 100px; と指定します アニメーション名を goroundanime 実行時間を 30s イージングを linear 開始待ち時間を 0s 繰り返しを infinite 実行方向は normal で指定します #cube { top: 150px; left: 150px; transform-style: preserve-3d; -webkit-transform-style: preserve-3d; transform-origin: 100px 100px; -webkit-transform-origin: 100px 100px; animation: goroundanime 30s linear 0s infinite normal; -webkit-animation: goroundanime 30s linear 0s infinite normal; アニメーション名 goroundanime に対応するタイムライン (@keyframes) を指定します 0% から 100% の間に transform: rotatex(720deg) rotatey(-360deg);x 軸の正方向から見て時計回りに 720 度まで回転させ Y 軸の正方向から見て反時計回りに 360 度まで回転させます @keyframes goroundanime { 0% { transform: rotatex(0deg) rotatey(0deg); 100% { transform: rotatex(720deg) rotatey(-360deg); @-webkit-keyframes goroundanime { 0% { -webkit-transform: rotatex(0deg) rotatey(0deg); 100% { -webkit-transform: rotatex(720deg) rotatey(-360deg); 3D Cube の 6 面体になる #cube > span のスタイルを指定します position は absolute 位 置は top: 0px; left: 0px;(#cube ボックスの左上端を起点とした位置 ) で指定します width は 200px height は 200px で指定します ボーダーを border: solid 1px #666666; ( 灰色 ) で指定します 20

#cube > span { top: 0px; left: 0px; width: 200px; height: 200px; border: solid 1px #666666; 1 つ目から 6 つ目の span 要素のスタイルを指定します #cube > span:nth-child(1) { transform: rotatey(-0deg) translatez(100px); -webkit-transform: rotatey(-0deg) translatez(100px); #cube > span:nth-child(2) { transform: rotatey(-90deg) translatez(100px); -webkit-transform: rotatey(-90deg) translatez(100px); #cube > span:nth-child(3) { transform: rotatey(-180deg) translatez(100px); -webkit-transform: rotatey(-180deg) translatez(100px); #cube > span:nth-child(4) { transform: rotatey(-270deg) translatez(100px); -webkit-transform: rotatey(-270deg) translatez(100px); #cube > span:nth-child(5) { transform: rotatex(90deg) translatez(100px); -webkit-transform: rotatex(90deg) translatez(100px); #cube > span:nth-child(6) { transform: rotatex(90deg) rotatey(180deg) translatez(100px); -webkit-transform: rotatex(90deg) rotatey(180deg) translatez(100px); 各 span 要素に貼りつける画像のサイズを指定します #cube span img { width: 100%; height: 100%; 21