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

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

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

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

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

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

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

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

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

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

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

Color Change

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

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

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 関数は 移動する位置ではなく 移動

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

1222-A Transform Function Order (trsn

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

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

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

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

Color Change

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

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

1222-A Transform Function Order (trsn

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

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

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

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

1221 Transitionの指定項目

メニューのトランジション 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

Web 設計入門

Web 設計入門

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

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

Moshimo Challenge Report

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

Webデザイン論

合宿事前講座 Web 開発の基本編その 2 情報研究会モブ 薗田海樹 The. H.30 情報研究会 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

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

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

第6回 CSS入門(つづき)

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

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

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

PowerPoint プレゼンテーション

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

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.

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

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


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

ch31.dvi

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

css.pdf

■新聞記事

1

6 2 1

extCountdown.pdf

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

JavaScript 演習 2 1

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

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

Microsoft PowerPoint _2b-DOM.pptx

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

年刊EDP 2003

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

PowerPoint Presentation

HTML5 CSS

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

_勉強会_丸山さつき_v3

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

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

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

< F2D D834F834A E837D E6A7464>

8 7 + <div class='col-12 col-md-8'> 8 <%= item.description %> 9 </div> 10 </div> 11 <% end %> 12 </div> class container container-fluid PicoPlan

第2回 Web文書

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


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

Web09

JavaScript演習

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

27短01研01斉藤.indd

超簡単にWebページを作成

HTML5&CSS3 レッスンブック

Web概論

extChatText.pdf

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

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

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

1/2

Transcription:

1329-2 Linear Gradation のアニメーション (2) 背景 (background) を線形グラデーション (Linear Gradation) のアニメーションにして みましょう W3C 仕様では background-image プロパティは transition プロパティでのトランジションや animation プロパティでのアニメーションができないようになっています linear-gradient( ) 関数または repeating-linear-gradient( ) 関数は background-image プロパティ ( または background プロパティで一括指定した background-image) の値として指定するので トランジションやアニメーションにすることはできません ( グラデーションのトランジションやアニメーションは多用されそうですが 残念ですが現在の仕様ではできません 将来 仕様に取り込まれるかもしれませんが ) そこで ここではどうしてもグラデーションのアニメーションを作りたいので 別の方法であたかもアニメーションのように見せることにしました linear-gradient と repeating-linear-gradient の仕様は 別本 Transition を使いこなす編 の 1237-1 線形グラデーション Linear Gradation (linear-gradient) を参照してください サンプル CSS1 テキストの背景をグラデーションにして変化させる (1) (webkit 仕様 ) (W3C 仕様 ) 1

背景の線形グラデーションをアニメーションのように見せる方法は 前章の #div4 ボックスと同じ方法です ( 注 )Safari (webkit 系ブラウザ ) と Chrome(Webkit にも対応 ) は テキストの輪郭や色を -webkit-text-stroke-width -webkit-text-stroke-color -webkit-text-fill-color のプロパティで描くことができますが W3C 仕様には同様の機能がないので webkit 系以外のブラウザ (Firefox IE など ) はテキストの色を color プロパティで指定するだけになります LinearGradSlideAnime1 の説明 HTML の記述 (LinearGradSlideAnime1.html) id 属性 stage の div 要素 ( アニメーションが動くステージ ) を作り その中にボックスや画像を記述します id 属性 div1 の div 要素の中に <span> タグで span 要素を2つ記述します 1つ目の span 要素は span 要素を移動させてグラデーションが動くように見せます 1つ目の span 要素は 中にテキスト文字を記述します <!DOCTYPE html> <html> <head> <title>lineargradslideanime1</title> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="lineargradslideanime1.css"> </head> <body> <p> 背景をグラデーションのスライドでアニメーションさせる (1)</p> <div id="stage"> <div id="div1"> <span></span> </div> </div> </body> </html> CSS の記述 (LinearGradSlideAnime1.css) #stage ステージのスタイルを指定します #stage ステージは width: 450px; height: 550px; border: solid 1px black; を指定します 2

#stage { width: 450px; height: 550px; border: solid 1px black; position: relative; #div1 ボックスを記述します width は 450px height は 550px にします overflow: hidden; を指定します #div1 { top:0px; left: 0px; width: 450px; height: 550px; position: absolute; overflow: hidden; #div1 ボックスの子要素の1つ目の span 要素を記述します top は-550px left は 0px で width は 450px height は 1100px にします span 要素の background プロパティを repeating-linear-gradient( ) 関数を使用して上から下へレインボーカラーのグラデーションを2 回繰り返すように指定します アニメーション名を grad1anime 実行時間を 10s イージングを linear 開始待ち時間を 0s 繰り返しを infinite 実行方向は normal で指定します #div1>span:nth-child(1) { top: -550px; left: 0px; width: 450px; height: 1100px; background-color: black; background: repeating-linear-gradient( to bottom, #F00, #F0F 8.3%, #00F 16.6%, #0FF 24.9%, #0F0 33.2%, #FF0 41.5%, #F00 50% ); background: -webkit-repeating-linear-gradient( top, #F00, #F0F 8.3%, #00F 16.6%, #0FF 24.9%, #0F0 33.2%, #FF0 41.5%, #F00 50% ); position: absolute; animation: grad1anime 10s linear 0s infinite normal; -webkit-animation: grad1anime 10s linear 0s infinite normal; #div1 ボックスの子要素の 2 つ目の span 要素を記述します top は 0px left は 0px で width は 420px height は 520px にします テキスト文字を #div1 ボックスの中央に置きた いので padding: 30px 0px 0px 30px; を指定しています ( そのため width と height は 3

30px ずつ減らして #div1 ボックスに収まるようにしています )-webkit-text-stroke -width: 3px; -webkit-text-stroke-color: white; -webkit-text-fill-color: black; で文字の輪郭を描いています ( これは Chrome と Safari だけの機能です 下の CSS には-webkit-の付いていない text-stroke-width: 3px; text-stroke-color: white; text-fill-color: black; も指定していますが 実際には機能しません W3C 仕様にも取り込んでほしい機能です ) #div1>span:nth-child(2) { top: 0px; left: 0px; width: 420px; height: 520px; padding: 30px 0px 0px 30px; text-align: left; font: bold 96px "MS P ゴシック ", Osaka, " ヒラギノ角ゴ Pro", Verdana; color: black; text-stroke-width: 3px; text-stroke-color: white; text-fill-color: black; -webkit-text-stroke-width: 3px; -webkit-text-stroke-color: white; -webkit-text-fill-color: black; position: absolute; アニメーション名 grad6anime に対応するタイムライン (@keyframes) を指定します この span 要素を top: -550px; から top: 0px; に移動します span 要素のグラデーションはレインボーカラーを2 回繰り返すように指定してあるので span 要素を半分移動したところでまた span 要素の先頭に戻るので あたかもレインボーカラーが永久に繰り返すように見えます @keyframes grad1anime { from { top: -550px; to { top: 0px; @-webkit-keyframes grad1anime { from { top: -550px; to { top: 0px; 4

サンプル CSS2 テキストの背景をグラデーションにして変化させる (2) (webkit 仕様 ) (W3C 仕様 ) サンプル CSS1 と同じアニメーションを background-position background-size などの プロパティを使用して動かしてみます LinearGradSlideAnime2 の説明 HTML の記述 (LinearGradSlideAnime2.html) id 属性 stage の div 要素 ( アニメーションが動くステージ ) を作り その中にボックスや画像を記述します id 属性 div1 の div 要素の中に <span> タグで span 要素を1つ記述し 中にテキスト文字を記述します <!DOCTYPE html> <html> <head> <title>lineargradslideanime2</title> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="lineargradslideanime2.css"> </head> <body> <p> background-position や backgruon-size などを使用して <br> 背景のグラデーションをアニメーションさせる (2)</p> <div id="stage"> <div id="div1"> </div> </div> </body> </html> 5

CSS の記述 (LinearGradSlideAnime2.css) #stage ステージのスタイルを指定します #stage ステージは width: 450px; height: 550px; border: solid 1px black; を指定します #stage { width: 450px; height: 550px; border: solid 1px black; position: relative; #div1 ボックスを記述します top は 0px left は 0px で width は 450px height は 550px にします background-image プロパティを repeating-linear-gradient( ) 関数を使用して上から下へレインボーカラーのグラデーションを 2 回繰り返す指定をします background-size: 100% 200%; と指定し #div1 ボックスの高さの2 倍のバックグラウンドイメージにします background-position: 0% 100%; と指定し バックグラウンドイメージの下半分を #div1 ボックスに表示します アニメーション名を grad1anime 実行時間を 10s イージングを linear 開始待ち時間を 0s 繰り返しを infinite 実行方向は normal で指定します #div1 { top:0px; left: 0px; width: 450px; height: 550px; background-color: orange; background-image: repeating-linear-gradient( to bottom, #F00, #F0F 8.3%, #00F 16.6%, #0FF 24.9%, #0F0 33.2%, #FF0 41.5%, #F00 50% ); background-image: -webkit-repeating-linear-gradient( top, #F00, #F0F 8.3%, #00F 16.6%, #0FF 24.9%, #0F0 33.2%, #FF0 41.5%, #F00 50% ); background-position: 0% 100%; background-size: 100% 200%; background-repeat: no-repeat; background-attachment: scroll; background-origin: border-box; background-clip: border-box; position: absolute; animation: grad1anime 10s linear 0s infinite normal; -webkit-animation: grad1anime 10s linear 0s infinite normal; #div1 ボックスの子要素の span 要素を記述します top は 0px left は 0px で width は 6

420px height は 520px にします テキスト文字を #div1 ボックスの中央に置きたいので padding: 30px 0px 0px 30px; を指定しています ( そのため width と height は 30px ずつ 減らして #div1 ボックスに収まるようにしています ) #div1 span { top: 0px; left: 0px; width: 420px; height: 520px; padding: 30px 0px 0px 30px; text-align: left; font: bold 96px "MS P ゴシック ", Osaka, " ヒラギノ角ゴ Pro", Verdana; color: black; text-stroke-width: 3px; text-stroke-color: white; text-fill-color: black; -webkit-text-stroke-width: 3px; -webkit-text-stroke-color: white; -webkit-text-fill-color: black; position: absolute; アニメーション名 grad1anime に対応するタイムライン (@keyframes) を指定します バックグラウンドイメージの background-position を background-position: 0% 100%; から background-position: 0% 0%; に移動します バックグラウンドイメージのグラデーションはレインボーカラーを2 回繰り返すように指定してあるので バックグラウンドイメージの上半分の表示が終わったところでまたバックグラウンドイメージの下半分に戻るので あたかもレインボーカラーが永久に繰り返すように見えます @keyframes grad1anime { from { background-position: 0% 100%; to { background-position: 0% 0%; @-webkit-keyframes grad1anime { from { background-position: 0% 100%; to { background-position: 0% 0%; 7

サンプル CSS3 テキストの背景をグラデーションにして変化させる (3) (webkit 仕様 ) (W3C 仕様 ) Safari (webkit 系ブラウザ ) と Chrome(webkit にも対応 ) はテキストの輪郭や色を -webkit-text-stroke-width -webkit-text-stroke-color -webkit-text-fill-color のプロパティで描くことができますが W3C 仕様には同様の機能がないので webkit 系以外のブラウザ (Firefox IE など ) はテキストの色を color プロパティで指定するだけになります ここでは円形の背景に線形グラデーションのアニメーションを動かし その上にテキスト文字を表示します 背景の線形グラデーションをアニメーションのように見せる方法は サンプルCSS2の LinearGradSlideAnime2.css と同じ方法です ( 注 : サンプルCSS1の LinearGradSlideAnime1.css のように グラデーションで染めた子要素の span 要素を動かす方法を使用して 親要素を border-radius プロパティで円形にして overflow: hidden; を指定する (LinearGradSlideAnime3.css を参照してください ) と Safari ブラウザだけがうまくいきません Safari の場合 親要素を border-radius プロパティで円形にして overflow: hidden; を指定すると overflow: hidden; が矩形 (4 角形 ) について有効のようで グラデーションが円形にならず矩形のままになります Safari の不具合でしょうか 他のブラウザではグラデーションが円形になります ) LinearGradSlideAnime3 の説明 HTML の記述 (LinearGradSlideAnime3.html) id 属性 stage の div 要素 ( アニメーションが動くステージ ) を作り その中にボックスや 画像を記述します id 属性 div1 の div 要素の中に <span> タグで span 要素を 1 つ記述し 中にテキスト文字を 記述します 8

<!DOCTYPE html> <html> <head> <title>lineargradslideanime3</title> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="lineargradslideanime3.css"> </head> <body> <p> background-position や backgruon-size などを使用して <br> 背景のグラデーションをアニメーションさせる (3)</p> <div id="stage"> <div id="div1"> </div> </div> </body> </html> CSS の記述 (LinearGradSlideAnime3.css) #stage ステージのスタイルを指定します #stage ステージは width: 550px; height: 550px; を指定します #stage { width: 550px; height: 550px; position: relative; #div1 ボックスを記述します top は 0px left は 0px で width は 550px height は 550px にします border-radius: 50%; と指定して円形にします background-image プロパティを repeating-linear-gradient( ) 関数を使用して上から下へレインボーカラーのグラデーションを2 回繰り返す指定をします background-size: 100% 200%; と指定し #div1 ボックスの高さの2 倍のバックグラウンドイメージにします background-position: 0% 100%; と指定し バックグラウンドイメージの下半分を #div1 ボックスに表示します アニメーション名を grad1anime 実行時間を 10s イージングを linear 開始待ち時間を 0s 繰り返しを infinite 実行方向は normal で指定します #div1 { top:0px; left: 0px; width: 550px; height: 550px; border-radius: 50%; background-color: orange; 9

background-image: repeating-linear-gradient( to bottom, #F00, #F0F 8.3%, #00F 16.6%, #0FF 24.9%, #0F0 33.2%, #FF0 41.5%, #F00 50% ); background-image: -webkit-repeating-linear-gradient( top, #F00, #F0F 8.3%, #00F 16.6%, #0FF 24.9%, #0F0 33.2%, #FF0 41.5%, #F00 50% ); background-position: 0% 100%; background-size: 100% 200%; background-repeat: no-repeat; background-attachment: scroll; background-origin: border-box; background-clip: border-box; position: absolute; animation: grad1anime 10s linear 0s infinite normal; -webkit-animation: grad1anime 10s linear 0s infinite normal; #div1 ボックスの子要素の span 要素を記述します top は 0px left は 0px で width は 550px height は 520px にします テキスト文字を #div1 ボックスの中央に置きたいので padding-top: 30px; を指定しています ( そのため height を 30px 減らして #div1 ボックスに収まるようにしています ) #div1 span { top: 0px; left: 0px; width: 550px; height: 520px; padding-top: 30px; text-align: center; font: bold 96px "MS P ゴシック ", Osaka, " ヒラギノ角ゴ Pro", Verdana; color: black; text-stroke-width: 3px; text-stroke-color: white; text-fill-color: black; -webkit-text-stroke-width: 3px; -webkit-text-stroke-color: white; -webkit-text-fill-color: black; position: absolute; アニメーション名 grad1anime に対応するタイムライン (@keyframes) を指定します バッ クグラウンドイメージの background-position を background-position: 0% 100%; から background-position: 0% 0%; に移動します バックグラウンドイメージのグラデーション はレインボーカラーを 2 回繰り返すように指定してあるので バックグラウンドイメージ の上半分の表示が終わったところでまたバックグラウンドイメージの下半分に戻るので 10

あたかもレインボーカラーが永久に繰り返すように見えます @keyframes grad1anime { from { background-position: 0% 100%; to { background-position: 0% 0%; @-webkit-keyframes grad1anime { from { background-position: 0% 100%; to { background-position: 0% 0%; サンプル CSS4 テキスト文字の中に背景のグラデーションを抜き出して変化させる (1) 注意 :Chrome Safari Microsoft Edge だけの機能です (2016 年 4 月 24 日現在 ) (webkit 仕様 ) (W3C 仕様 ) Safari (webkit 系ブラウザ ) と Chrome(webkit にも対応 ) はテキストの輪郭や色を -webkit-text-stroke-width -webkit-text-stroke-color -webkit-text-fill-color のプ ロパティで描くことができますが W3C 仕様には同様の機能がないので webkit 系以外の ブラウザ (Firefox IE など ) はテキストの色を color プロパティで指定するだけになりま す また webkit 系ブラウザは -webkit-text-fill-color に transparent( 透明 ) を指定して -webkit-background-clip プロパティの値に text を指定すると text 文字の形に合わせて 11

背景を抜き出すことができますが webkit 系以外のブラウザは text の指定ができません Microsoft Edge は webkit 系ブラウザではありませんが -webkit-text-fill-color プロパティと-webkit-background-clip プロパティについては ベンダープリフィックスが -webkit-であるにも関わらず対応してくれているようです ですから-webkit-text-fill- color に transparent( 透明 ) を指定して -webkit-background-clip プロパティの値に text を指定すると text 文字の形に合わせて背景を抜き出すことができます ( やるじゃないですか Microsoft Edge) 背景の線形グラデーションをアニメーションのように見せる方法は 前章の #div1 ボックス と同じように opacity プロパティを利用する方法です LinearGradInTextAnime1 の説明 HTML の記述 (LinearGradInTextAnime1.html) id 属性 stage の div 要素 ( アニメーションが動くステージ ) を作り その中にボックスや画像を記述します id 属性 div1 の div 要素の中に <span> タグで span 要素を6つ記述し それぞれの span 要素は 中にテキスト文字を記述します <!DOCTYPE html> <html> <head> <title>lineargradintextanime1</title> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="lineargradintextanime1.css"> </head> <body> <p> 文字の内容を グラデーションでアニメーションさせる (1)</p> <div id="stage"> <div id="div1"> </div> </div> </body> </html> 12

CSS の記述 (LinearGradInTextAnime1.css) #stage ステージのスタイルを指定します #stage ステージは width: 450px; height: 550px; を指定します #stage { width: 450px; height: 550px; position: relative; #div1 ボックスを記述します width は 450px height は 550px にします overflow: hidden; を指定します background-color: black; を指定します #div1 { top: 0px; left: 0px; width: 450px; height: 550px; background-color: black; position: absolute; #div1 ボックスの子要素として 6 つの span 要素を記述しますが 各 span 要素に共通のプロ パティをまとめて指定します top は 0px left は 0px で width は 420px height は 520px にします グラデーションの 変化を opacity プロパティの値を変化させて行うので 値が 0 と 1 の変化の途中で #div1 ボ ックスの黒い背景色が透けて見えて画像が暗くならないように background-color: white; で指定します テキスト文字を #div1 ボックスの上辺と左辺から 30px 離して表示たいので span 要素のパディングを padding: 30px 0px 0px 30px; で指定しています ( そのため width と height は 30px ずつ減らして #div1 ボックスに収まるようにしています ) テキストは -webkit-text-stroke-width: 0px; -webkit-text-stroke-color: #000000; -webkit-text -fill-color: transparent; で文字を透明にして描き -webkit-background-clip: text; を 指定して文字の部分に背景のグラデーションを抜き出して表示させ #div1 ボックスに重ね ます ( これは Safari (webkit 系ブラウザ ) と Chrome(webkit にも対応 ) だけの機能で す 下の CSS には text-stroke-width: 0px; text-stroke-color: #000000; text-fill -color: transparent; background-clip: text; を指定していますが 実際には機能しま せん W3C 仕様にも取り込んでほしい機能です ) position: absolute; で指定します opacity を opacity: 0.0; で指定します 13

#div1 span { top: 0px; left: 0px; width: 420px; height: 520px; /* TEXT を中央に配置するため padding-top と padding-left を 30px に指定しているので グラデーションも右方向と下方向に 30px はみ出す それを防ぐ為 width と height を 30px 減らしている */ background-color: white; padding: 30px 0px 0px 30px; text-align: left; font: bold 96px "MS P ゴシック ", Osaka, " ヒラギノ角ゴ Pro", Verdana; color: black; text-stroke-width: 0px; text-stroke-color: #000000; text-fill-color: transparent; background-clip: text; -webkit-text-stroke-width: 0px; -webkit-text-stroke-color: #000000; -webkit-text-fill-color: transparent; -webkit-background-clip: text; position: absolute; opacity: 0.0; 以降は 各 span 要素で異なるプロパティを指定します #div1 ボックスの子要素の1 番目の span 要素を記述します span 要素の background-image プロパティを linear-gradient( ) 関数を使用して上から下へ紫色 (#FF00FF) 青色(#0000FF) 水色 (#00FFFF) 緑色(#00FF00) 黄色(#FFFF00) 赤色(#FF0000) に指定します アニメーション名を grad1anime 実行時間を 10s イージングを linear 開始待ち時間を 0s 繰り返しを infinite 実行方向は normal で指定します #div1 > span:nth-child(1) { background-image: linear-gradient(to bottom, #FF00FF, #0000FF, #00FFFF, #00FF00, #FFFF00, #FF0000); background-image: -webkit-linear-gradient(top, #FF00FF, #0000FF, #00FFFF, #00FF00, #FFFF00, #FF0000); animation: grad1anime 10s linear 0s infinite normal; -webkit-animation: grad1anime 10s linear 0s infinite normal; #div1 ボックスの子要素の 2 番目から 6 番目の span 要素は 1 番目の span 要素と background-image プロパティのグラデーションの色の順番とアニメーション名だけが違い ます 2 番目の span 要素を記述します グラデーションの色の順番は 1 つ分ずらして赤色 14

(#FF0000) 紫色 (#FF00FF) 青色 (#0000FF) 水色 (#00FFFF) 緑色 (#00FF00) 黄色 (#FFFF00) に指定します アニメーション名を grad2anime と指定します #div1 > span:nth-child(2) { background-image: linear-gradient(to bottom, #FF0000, #FF00FF, #0000FF, #00FFFF, #00FF00, #FFFF00); background-image: -webkit-linear-gradient(top, #FF0000, #FF00FF, #0000FF, #00FFFF, #00FF00, #FFFF00); animation: grad2anime 10s linear 0s infinite normal; -webkit-animation: grad2anime 10s linear 0s infinite normal; 3 番目の span 要素を記述します グラデーションの色の順番は さらに 1 つ分ずらして黄 色 (#FFFF00) 赤色 (#FF0000) 紫色 (#FF00FF) 青色 (#0000FF) 水色 (#00FFFF) 緑 色 (#00FF00) に指定します アニメーション名を grad2anime と指定します #div1 > span:nth-child(3) { background-image: linear-gradient(to bottom, #FFFF00, #FF0000, #FF00FF, #0000FF, #00FFFF, #00FF00); background-image: -webkit-linear-gradient(top, #FFFF00, #FF0000, #FF00FF, #0000FF, #00FFFF, #00FF00); animation: grad3anime 10s linear 0s infinite normal; -webkit-animation: grad3anime 10s linear 0s infinite normal; 4 番目の span 要素を記述します グラデーションの色の順番は さらに 1 つ分ずらして緑 色 (#00FF00) 黄色 (#FFFF00) 赤色 (#FF0000) 紫色 (#FF00FF) 青色 (#0000FF) 水 色 (#00FFFF) に指定します アニメーション名を grad4anime と指定します #div1 > span:nth-child(4) { background-image: linear-gradient(to bottom, #00FF00, #FFFF00, #FF0000, #FF00FF, #0000FF, #00FFFF); background-image: -webkit-linear-gradient(top, #00FF00, #FFFF00, #FF0000, #FF00FF, #0000FF, #00FFFF); animation: grad4anime 10s linear 0s infinite normal; -webkit-animation: grad4anime 10s linear 0s infinite normal; 5 番目の span 要素を記述します グラデーションの色の順番は さらに 1 つ分ずらして水 色 (#00FFFF) 緑色 (#00FF00) 黄色 (#FFFF00) 赤色 (#FF0000) 紫色 (#FF00FF) 青 色 (#0000FF) に指定します アニメーション名を grad5anime と指定します 15

#div1 > span:nth-child(5) { background-image: linear-gradient(to bottom, #00FFFF, #00FF00, #FFFF00, #FF0000, #FF00FF, #0000FF); background-image: -webkit-linear-gradient(top, #00FFFF, #00FF00, #FFFF00, #FF0000, #FF00FF, #0000FF); animation: grad5anime 10s linear 0s infinite normal; -webkit-animation: grad5anime 10s linear 0s infinite normal; 6 番目の span 要素を記述します グラデーションの色の順番は さらに 1 つ分ずらして青 色 (#0000FF) 水色 (#00FFFF) 緑色 (#00FF00) 黄色 (#FFFF00) 赤色 (#FF0000) 紫 色 (#FF00FF) に指定します アニメーション名を grad6anime と指定します #div1 > span:nth-child(6) { background-image: linear-gradient(to bottom, #0000FF, #00FFFF, #00FF00, #FFFF00, #FF0000, #FF00FF); background-image: -webkit-linear-gradient(top, #0000FF, #00FFFF, #00FF00, #FFFF00, #FF0000, #FF00FF); animation: grad6anime 10s linear 0s infinite normal; -webkit-animation: grad6anime 10s linear 0s infinite normal; アニメーション名 grad1anime から grad6anime に対応するタイムライン (@keyframes) を指定します タイムラインを6 分割 ( グラデーションの span の数 ) し grad1anime は6 分割の1 番目の時間で opacity: 1.0; にしてグラデーションが見えるようにします 次に grad2anime は6 分割の2 番目の時間で opacity: 1.0; にしてグラデーションが見えるようにします 同じように grad3anime から grad6anime も 6 分割の3 番目の時間から6 番目の時間で opacity: 1.0; にしてグラデーションが見えるようにします grad1anime と grad6anime は他タイムラインと少し違うところがあります grad1anime は タイムラインの6 番目の時間にも opacity: 1.0; にして 徐々に見えるようにします grad6anime は タイムラインの6 番目の時間を opacity: 0.0; にして 徐々に見えなくなるようにします これでテキスト文字の中に あたかもレインボーカラーが永久に繰り返すように見えます ( 注 : タイムラインを7 分割にしたり opacity の値を変えるタイミングをいろいろ試してみましたが 100% から 0% に戻るときにグラデーションが一瞬止まったりして 滑らかにグラデーションが変化しなかったので 上で記述した方法が比較的良いようです ) 16

/* grad1anime ************************************************************/ @keyframes grad1anime { from { opacity: 1.0; 17% { opacity: 1.0; 34% { opacity: 0.0; 51% { opacity: 0.0; 68% { opacity: 0.0; 84% { opacity: 0.0; to { opacity: 1.0; @-webkit-keyframes grad1anime { from { opacity: 1.0; 17% { opacity: 1.0; 34% { opacity: 0.0; 51% { opacity: 0.0; 68% { opacity: 0.0; 84% { opacity: 0.0; to { opacity: 1.0; /* grad2anime ************************************************************/ @keyframes grad2anime { from { opacity: 0.0; 17% { opacity: 1.0; 34% { opacity: 1.0; 51% { opacity: 0.0; 68% { opacity: 0.0; 84% { opacity: 0.0; to { opacity: 0.0; @-webkit-keyframes grad2anime { from { opacity: 0.0; 17% { opacity: 1.0; 34% { opacity: 1.0; 51% { opacity: 0.0; 68% { opacity: 0.0; 84% { opacity: 0.0; to { opacity: 0.0; /* grad3anime ************************************************************/ @keyframes grad3anime { from { opacity: 0.0; 17% { opacity: 0.0; 34% { opacity: 1.0; 51% { opacity: 1.0; 68% { opacity: 0.0; 84% { opacity: 0.0; to { opacity: 0.0; @-webkit-keyframes grad3anime { from { opacity: 0.0; 17% { opacity: 0.0; 17

34% { opacity: 1.0; 51% { opacity: 1.0; 68% { opacity: 0.0; 84% { opacity: 0.0; to { opacity: 0.0; /* grad4anime ************************************************************/ @keyframes grad4anime { from { opacity: 0.0; 17% { opacity: 0.0; 34% { opacity: 0.0; 51% { opacity: 1.0; 68% { opacity: 1.0; 84% { opacity: 0.0; to { opacity: 0.0; @-webkit-keyframes grad4anime { from { opacity: 0.0; 17% { opacity: 0.0; 34% { opacity: 0.0; 51% { opacity: 1.0; 68% { opacity: 1.0; 84% { opacity: 0.0; to { opacity: 0.0; /* grad5anime ************************************************************/ @keyframes grad5anime { from { opacity: 0.0; 17% { opacity: 0.0; 34% { opacity: 0.0; 51% { opacity: 0.0; 68% { opacity: 1.0; 84% { opacity: 1.0; to { opacity: 0.0; @-webkit-keyframes grad5anime { from { opacity: 0.0; 17% { opacity: 0.0; 34% { opacity: 0.0; 51% { opacity: 0.0; 68% { opacity: 1.0; 84% { opacity: 1.0; to { opacity: 0.0; /* grad6anime ************************************************************/ @keyframes grad6anime { from { opacity: 0.0; 17% { opacity: 0.0; 34% { opacity: 0.0; 51% { opacity: 0.0; 68% { opacity: 0.0; 18

84% { opacity: 1.0; to { opacity: 0.0; @-webkit-keyframes grad6anime { from { opacity: 0.0; 17% { opacity: 0.0; 34% { opacity: 0.0; 51% { opacity: 0.0; 68% { opacity: 0.0; 84% { opacity: 1.0; to { opacity: 0.0; サンプル CSS5 テキスト文字の中に背景のグラデーションを抜き出して変化させる (2) 注意 :Chrome Safari Microsoft Edge だけの機能です (2016 年 4 月 24 日現在 ) (webkit 仕様 ) (W3C 仕様 ) Safari (webkit 系ブラウザ ) と Chrome(webkit にも対応 ) はテキストの輪郭や色を -webkit-text-stroke-width -webkit-text-stroke-color -webkit-text-fill-color のプ ロパティで描くことができますが W3C 仕様には同様の機能がないので webkit 系以外の ブラウザ (Firefox IE など ) はテキストの色を color プロパティで指定するだけになりま す また webkit 系ブラウザは -webkit-text-fill-color に transparent( 透明 ) を指定して 19

-webkit-background-clip プロパティの値に text を指定すると text 文字の形に合わせて背景を抜き出すことができますが webkit 系以外のブラウザは text の指定ができません Microsoft Edge は webkit 系ブラウザではありませんが -webkit-text-fill-color プロパティと-webkit-background-clip プロパティについては ベンダープリフィックスが -webkit-であるにも関わらず対応してくれているようです ですから-webkit-text-fill- color に transparent( 透明 ) を指定して -webkit-background-clip プロパティの値に text を指定すると text 文字の形に合わせて背景を抜き出すことができます ( やるじゃないですか Microsoft Edge) 背景の線形グラデーションをアニメーションのように見せる方法は サンプル CSS4 の LinearGradInTextAnime1.css と同じように opacity プロパティを利用する方法です LinearGradInTextAnime5 の説明 HTML の記述 (LinearGradInTextAnime5.html) id 属性 stage の div 要素 ( アニメーションが動くステージ ) を作り その中にボックスや画像を記述します id 属性 div1 の div 要素の中に <span> タグで span 要素を6つ記述し それぞれの span 要素は 中にテキスト文字を記述します <!DOCTYPE html> <html> <head> <title>lineargradintextanime5</title> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="lineargradintextanime5.css"> </head> <body> <p> 文字の内容を グラデーションでアニメーションさせる (5)</p> <div id="stage"> <div id="div1"> </div> </div> </body> </html> 20

CSS の記述 (LinearGradInTextAnime5.css) #stage ステージのスタイルを指定します #stage ステージは width: 550px; height: 550px; を指定します #stage { width: 550px; height: 550px; position: relative; #div1 ボックスを記述します width は 550px height は 550px にします border-radius: 50%; と指定して円形にします background-color: black; を指定します #div1 { top: 0px; left: 0px; width: 550px; height: 550px; border-radius: 50%; background-color: black; position: absolute; #div1 ボックスの子要素として 6 つの span 要素を記述しますが 各 span 要素に共通のプロ パティをまとめて指定します top は 0px left は 0px で width は 550px height は 520px にします グラデーションの 変化を opacity プロパティの値を変化させて行うので 値が 0 と 1 の変化の途中で #div1 ボ ックスの黒い背景色が透けて見えて画像が暗くならないように background-color: white; で指定します 円形にしたいので border-radius: 50%; と指定します テキスト文字を #div1 ボックスの中央に置きたいので 横方向は text-align: center; で中央に指定し 縦方向は span 要素のパディングを padding-top: 30px; で指定しています ( そのため height は 30px ずつ減らして #div1 ボックスの中央に収まるようにしています ) テキストは -webkit-text-stroke-width: 0px; -webkit-text-stroke-color: #000000; -webkit-text -fill-color: transparent; で文字を透明にして描き -webkit-background-clip: text; を 指定して文字の部分に背景のグラデーションを抜き出して表示させ #div1 ボックスに重ね ます ( これは Safari (webkit 系ブラウザ ) と Chrome(webkit にも対応 ) だけの機能で す 下の CSS には text-stroke-width: 0px; text-stroke-color: #000000; text-fill -color: transparent; background-clip: text; を指定していますが 実際には機能しま せん W3C 仕様にも取り込んでほしい機能です ) 21

position: absolute; で指定します opacity を opacity: 0.0; で指定します #div1 span { top: 0px; left: 0px; width: 550px; height: 520px; /* TEXT を中央に配置するため padding-top を 30px に指定しているため グラデーションも 30px 下にずれる それを防ぐ為 height を 550px ではなく 530px で指定し グラデーションの中心を合わせている */ border-radius: 50%; background-color: white; padding-top: 30px; text-align: center; font: bold 96px "MS P ゴシック ", Osaka, " ヒラギノ角ゴ Pro", Verdana; color: black; text-stroke-width: 0px; text-stroke-color: #000000; text-fill-color: transparent; background-clip: text; -webkit-text-stroke-width: 0px; -webkit-text-stroke-color: #000000; -webkit-text-fill-color: transparent; -webkit-background-clip: text; position: absolute; opacity: 0.0; 以降は 各 span 要素で異なるプロパティを指定します #div1 ボックスの子要素の1 番目の span 要素を記述します span 要素の background-image プロパティを linear-gradient( ) 関数を使用して上から下へ紫色 (#FF00FF) 青色(#0000FF) 水色 (#00FFFF) 緑色(#00FF00) 黄色(#FFFF00) 赤色(#FF0000) に指定します アニメーション名を grad1anime 実行時間を 10s イージングを linear 開始待ち時間を 0s 繰り返しを infinite 実行方向は normal で指定します #div1 > span:nth-child(1) { background-image: linear-gradient(to bottom, #FF00FF, #0000FF, #00FFFF, #00FF00, #FFFF00, #FF0000); background-image: -webkit-linear-gradient(top, #FF00FF, #0000FF, #00FFFF, #00FF00, #FFFF00, #FF0000); animation: grad1anime 10s linear 0s infinite normal; -webkit-animation: grad1anime 10s linear 0s infinite normal; #div1 ボックスの子要素の 2 番目から 6 番目の span 要素は 1 番目の span 要素と background-image プロパティのグラデーションの色の順番とアニメーション名だけが違い ます 22

2 番目の span 要素を記述します グラデーションの色の順番は 1 つ分ずらして赤色 (#FF0000) 紫色 (#FF00FF) 青色 (#0000FF) 水色 (#00FFFF) 緑色 (#00FF00) 黄色 (#FFFF00) に指定します アニメーション名を grad2anime と指定します #div1 > span:nth-child(2) { background-image: linear-gradient(to bottom, #FF0000, #FF00FF, #0000FF, #00FFFF, #00FF00, #FFFF00); background-image: -webkit-linear-gradient(top, #FF0000, #FF00FF, #0000FF, #00FFFF, #00FF00, #FFFF00); animation: grad2anime 10s linear 0s infinite normal; -webkit-animation: grad2anime 10s linear 0s infinite normal; 3 番目の span 要素を記述します グラデーションの色の順番は さらに 1 つ分ずらして黄 色 (#FFFF00) 赤色 (#FF0000) 紫色 (#FF00FF) 青色 (#0000FF) 水色 (#00FFFF) 緑 色 (#00FF00) に指定します アニメーション名を grad3anime と指定します #div1 > span:nth-child(3) { background-image: linear-gradient(to bottom, #FFFF00, #FF0000, #FF00FF, #0000FF, #00FFFF, #00FF00); background-image: -webkit-linear-gradient(top, #FFFF00, #FF0000, #FF00FF, #0000FF, #00FFFF, #00FF00); animation: grad3anime 10s linear 0s infinite normal; -webkit-animation: grad3anime 10s linear 0s infinite normal; 4 番目の span 要素を記述します グラデーションの色の順番は さらに 1 つ分ずらして緑 色 (#00FF00) 黄色 (#FFFF00) 赤色 (#FF0000) 紫色 (#FF00FF) 青色 (#0000FF) 水 色 (#00FFFF) に指定します アニメーション名を grad4anime と指定します #div1 > span:nth-child(4) { background-image: linear-gradient(to bottom, #00FF00, #FFFF00, #FF0000, #FF00FF, #0000FF, #00FFFF); background-image: -webkit-linear-gradient(top, #00FF00, #FFFF00, #FF0000, #FF00FF, #0000FF, #00FFFF); animation: grad4anime 10s linear 0s infinite normal; -webkit-animation: grad4anime 10s linear 0s infinite normal; 5 番目の span 要素を記述します グラデーションの色の順番は さらに 1 つ分ずらして水 色 (#00FFFF) 緑色 (#00FF00) 黄色 (#FFFF00) 赤色 (#FF0000) 紫色 (#FF00FF) 青 色 (#0000FF) に指定します アニメーション名を grad5anime と指定します 23

#div1 > span:nth-child(5) { background-image: linear-gradient(to bottom, #00FFFF, #00FF00, #FFFF00, #FF0000, #FF00FF, #0000FF); background-image: -webkit-linear-gradient(top, #00FFFF, #00FF00, #FFFF00, #FF0000, #FF00FF, #0000FF); animation: grad5anime 10s linear 0s infinite normal; -webkit-animation: grad5anime 10s linear 0s infinite normal; 6 番目の span 要素を記述します グラデーションの色の順番は さらに 1 つ分ずらして青 色 (#0000FF) 水色 (#00FFFF) 緑色 (#00FF00) 黄色 (#FFFF00) 赤色 (#FF0000) 紫 色 (#FF00FF) に指定します アニメーション名を grad6anime と指定します #div1 > span:nth-child(6) { background-image: linear-gradient(to bottom, #0000FF, #00FFFF, #00FF00, #FFFF00, #FF0000, #FF00FF); background-image: -webkit-linear-gradient(top, #0000FF, #00FFFF, #00FF00, #FFFF00, #FF0000, #FF00FF); animation: grad6anime 10s linear 0s infinite normal; -webkit-animation: grad6anime 10s linear 0s infinite normal; アニメーション名 grad1anime から grad6anime に対応するタイムライン (@keyframes) を指定します タイムラインを6 分割 ( グラデーションの span の数 ) し grad1anime は6 分割の1 番目の時間で opacity: 1.0; にしてグラデーションが見えるようにします 次に grad2anime は6 分割の2 番目の時間で opacity: 1.0; にしてグラデーションが見えるようにします 同じように grad3anime から grad6anime も 6 分割の3 番目の時間から6 番目の時間で opacity: 1.0; にしてグラデーションが見えるようにします grad1anime と grad6anime は他タイムラインと少し違うところがあります grad1anime は タイムラインの6 番目の時間にも opacity: 1.0; にして 徐々に見えるようにします grad6anime は タイムラインの6 番目の時間を opacity: 0.0; にして 徐々に見えなくなるようにします これでテキスト文字の中に あたかもレインボーカラーが永久に繰り返すように見えます /* grad1anime ************************************************************/ @keyframes grad1anime { from { opacity: 1.0; 17% { opacity: 1.0; 34% { opacity: 0.0; 51% { opacity: 0.0; 68% { opacity: 0.0; 24

84% { opacity: 0.0; to { opacity: 1.0; @-webkit-keyframes grad1anime { from { opacity: 1.0; 17% { opacity: 1.0; 34% { opacity: 0.0; 51% { opacity: 0.0; 68% { opacity: 0.0; 84% { opacity: 0.0; to { opacity: 1.0; /* grad2anime ************************************************************/ @keyframes grad2anime { from { opacity: 0.0; 17% { opacity: 1.0; 34% { opacity: 1.0; 51% { opacity: 0.0; 68% { opacity: 0.0; 84% { opacity: 0.0; to { opacity: 0.0; @-webkit-keyframes grad2anime { from { opacity: 0.0; 17% { opacity: 1.0; 34% { opacity: 1.0; 51% { opacity: 0.0; 68% { opacity: 0.0; 84% { opacity: 0.0; to { opacity: 0.0; /* grad3anime ************************************************************/ @keyframes grad3anime { from { opacity: 0.0; 17% { opacity: 0.0; 34% { opacity: 1.0; 51% { opacity: 1.0; 68% { opacity: 0.0; 84% { opacity: 0.0; to { opacity: 0.0; @-webkit-keyframes grad3anime { from { opacity: 0.0; 17% { opacity: 0.0; 34% { opacity: 1.0; 51% { opacity: 1.0; 68% { opacity: 0.0; 84% { opacity: 0.0; to { opacity: 0.0; 25

/* grad4anime ************************************************************/ @keyframes grad4anime { from { opacity: 0.0; 17% { opacity: 0.0; 34% { opacity: 0.0; 51% { opacity: 1.0; 68% { opacity: 1.0; 84% { opacity: 0.0; to { opacity: 0.0; @-webkit-keyframes grad4anime { from { opacity: 0.0; 17% { opacity: 0.0; 34% { opacity: 0.0; 51% { opacity: 1.0; 68% { opacity: 1.0; 84% { opacity: 0.0; to { opacity: 0.0; /* grad5anime ************************************************************/ @keyframes grad5anime { from { opacity: 0.0; 17% { opacity: 0.0; 34% { opacity: 0.0; 51% { opacity: 0.0; 68% { opacity: 1.0; 84% { opacity: 1.0; to { opacity: 0.0; @-webkit-keyframes grad5anime { from { opacity: 0.0; 17% { opacity: 0.0; 34% { opacity: 0.0; 51% { opacity: 0.0; 68% { opacity: 1.0; 84% { opacity: 1.0; to { opacity: 0.0; /* grad6anime ************************************************************/ @keyframes grad6anime { from { opacity: 0.0; 17% { opacity: 0.0; 34% { opacity: 0.0; 51% { opacity: 0.0; 68% { opacity: 0.0; 84% { opacity: 1.0; to { opacity: 0.0; @-webkit-keyframes grad6anime { from { opacity: 0.0; 17% { opacity: 0.0; 26

34% { opacity: 0.0; 51% { opacity: 0.0; 68% { opacity: 0.0; 84% { opacity: 1.0; to { opacity: 0.0; 27