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

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

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

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

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

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

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

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

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

ように記述をします 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 属

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

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

Color Change

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

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

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

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

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

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

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

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

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

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

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

1222-A Transform Function Order (trsn

Color Change

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

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

1222-A Transform Function Order (trsn

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

1221 Transitionの指定項目

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

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

第6回 CSS入門(つづき)

1222-A Transform Function Order (trsn

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

Webデザイン論

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

Web 設計入門

1221 Transitionの指定項目

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

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

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

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

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:" 記号や文字 ";}

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

Moshimo Challenge Report

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

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.

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

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

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

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

PowerPoint プレゼンテーション

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

Web 設計入門

CSS

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

■新聞記事

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

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

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


HTML5 CSS

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

1/2

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

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

Web

6 2 1

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

超簡単にWebページを作成

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

css.pdf

extCountdown.pdf

PowerPoint Presentation

Web09

第 10 問 HTML5 では 1 つの HTML 文書内で複数の h1 要素を使用することは文法的に誤りとしている 2. 以下の設問に答えよ 第 11 問 コンピュータネットワークにおいて SSH の仕組みを使ってファイルを転送するプロトコルはどれか 以下より 1 つ 選択しなさい 1. SMTP

( )

_勉強会_丸山さつき_v3

JavaScript 演習 2 1

スライド 1

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

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

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

年刊EDP 2003

CSSの基礎

1

Webデザイン論


オリエンテーション

HTML5&CSS3 レッスンブック

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

ch31.dvi


Web 設計入門

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


Transcription:

1337-1 メニューのアニメーション (1) animation プロパティを利用して メニューの中でアニメーションを動かしてみましょう メニューを工夫することでひときわ光る web ページにすることができます もう Flash でアニメーションを作る必要はありません JavaScript でスクリプトを書く必要もありません サンプル CSS1 メニューバーの中を動くアニメーション メニューバーの中に太陽系宇宙を入れてみました 星がまたたく宇宙空間を宇宙船スペー スシャトルと USS エンタープライズ号が飛び交う楽しいメニューバーです 1

大メニューをマウスカーソルで hover すると 半透明の小メニューが上から伸びてきます 小メニューを hover すると メニューの背景色とテキストの色が変わります NaviMenuAnime01 の説明 HTML の記述 (NaviMenuAnime01.html) id 属性 menu-box の div 要素を作り その中にメニューバーの背景に表示する星空用の span 要素 地球 月 土星の画像の img 要素 宇宙船スペースシャトルとUSSエンタープライズ号の画像の img 要素および ul 要素と li 要素でリストを記述します <a href="#">menu1</a> の href="#" は a 要素には必ず href 属性を指定しなければならないので 大メニューをクリックしても他へジャンプしないでページの先頭へ跳ぶように "#" と指定しています もちろんここへ # ではなく URL を記述すれば その URL へジャンプすることができます <!DOCTYPE html> <html> <head> <title>navimenuanime01</title> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="navimenuanime01.css"> </head> <body> <h1> メニューバーを作る (hover で小メニューを開く )</h1> <div id="menu-box"> <div id="anime-box"> <span id="stars-0"></span> <span id="stars-1"></span> <span id="stars-2"></span> <img id="earth" src="images/earth1.png" alt="earth"> <img id="moon" src="images/moon.png" alt="moon"> <img id="saturn" src="images/saturn2 53X100.png" alt="saturn"> <img id="shuttle" src="images/spaceshuttle.png" alt="shattle"> <img id="enterprise" src="images/uss-enterprise.png" alt="enterprise"> </div> 2

<ul> <li><a href="#">menu1</a> <ul> <li><a href="linkpages/page1_1.html">page1_1</a></li> <li><a href="linkpages/page1_2.html">page1_2</a></li> <li><a href="linkpages/page1_3.html">page1_3</a></li> </ul> </li> <li><a href="#">menu2</a> <ul> <li><a href="linkpages/page2_1.html">page2_1</a></li> <li><a href="linkpages/page2_2.html">page2_2</a></li> <li><a href="linkpages/page2_3.html">page2_3</a></li> <li><a href="linkpages/page2_4.html">page2_4</a></li> </ul> </li> <li><a href="#">menu3</a> <ul> <li><a href="linkpages/page3_1.html">page3_1</a></li> <li><a href="linkpages/page3_2.html">page3_2</a></li> <li><a href="linkpages/page3_3.html">page3_3</a></li> <li><a href="linkpages/page3_4.html">page3_4</a></li> <li><a href="linkpages/page3_5.html">page3_5</a></li> </ul> </li> <li><a href="#">menu4</a> <ul> <li><a href="linkpages/page4_1.html">page4_1</a></li> <li><a href="linkpages/page4_2.html">page4_2</a></li> <li><a href="linkpages/page4_3.html">page4_3</a></li> <li><a href="linkpages/page4_4.html">page4_4</a></li> </ul> </li> </ul> </div> 3

</body> </html> CSS の記述 (NaviMenuAnime01.css) 先ず id 名が #menu-box の div 要素のスタイルを指定します この本で紹介しているほかのアニメーションで使用している id 名が #stage の div 要素と同じものですが ボタンやメニューで使用していることを分かり易くするために #menu-box という id 名を付けています #menu-box { margin: 10px 0px 10px 15px; width: 765px; height: 52px; position: relative; つぎに #menu-box と同じサイズの #anime-box を指定し その背景にまたたく星 惑星の画像を表示し その中でスペースシャトル 宇宙船 USSエンタープライズ号の画像のアニメーションを動かします #anime-box は top: 0px; left: 0px; width: 765px; height: 52px; と指定し #menu-box に重ねます /* 背景アニメーション ************************************************************/ #anime-box { top: 0px; left: 0px; width: 765px; height: 52px; overflow: hidden; 背景にまたたく星のアニメーションを表示する 3 つの画像を次々と表示して 星がまたたくように見せます Stars3 50X50.png Stars4-1 50X50.png Stars4-2 50X50.png #anime-box と同じサイズの #stars-0 ボックスを指定し その background-image に 4

images/stars3 50X50.png を background-repeat: repeat; で敷きつめて表示します #stars-0 は top: 0px; left: 0px; width: 765px; height: 52px; と指定し #anime-box に重ねます #stars-0 { top: 0px; left: 0px; width: 765px; height: 52px; background-image: url("images/stars3 50X50.png"); background-repeat: repeat; background-origin: border-box; background-clip: border-box; opacity: 1.0; 次に #anime-box と同じサイズの #stars-1 ボックスを指定し その background-image に images/stars4-1 50X50.png を background-repeat: repeat; で敷きつめて表示します #stars-0 は top: 0px; left: 0px; width: 765px; height: 52px; と指定し #stars-0 ボックスに重ねます opacity: 1.0; と指定して見えるようにしておきます ボックスはアニメーション名を stars1anime 実行時間を 1s イージングを linear 開始待ち時間を 0s 繰り返しを infinite 実行方向は alternate で指定します #stars-1 { top: 0px; left: 0px; width: 765px; height: 52px; background-image: url("images/stars4-1 50X50.png"); background-repeat: repeat; background-origin: border-box; background-clip: border-box; opacity: 1.0; animation: stars1anime 1s linear 0s infinite alternate; -webkit-animation: stars1anime 1s linear 0s infinite alternate; アニメーション名 stars1anime に対応するタイムライン (@keyframes) を指定します opacity: 1.0; から opacity: 0.0; に変更して 見えないようにします @keyframes stars1anime { 0% { 100% { opacity: 0.0; 5

@-webkit-keyframes stars1anime { 0% { 100% { opacity: 0.0; 次に #anime-box と同じサイズの #stars-2 ボックスを指定し その background-image に images/stars4-2 50X50.png を background-repeat: repeat; で敷きつめて表示します #stars-0 は top: 0px; left: 0px; width: 765px; height: 52px; と指定し #stars-0 ボックスに重ねます opacity: 0.0; と指定して見えないようにしておきます ボックスはアニメーション名を stars2anime 実行時間を 1s イージングを linear 開始待ち時間を 0s 繰り返しを infinite 実行方向は alternate で指定します #stars-2 { top: 0px; left: 0px; width: 765px; height: 52px; background-image: url("images/stars4-2 50X50.png"); background-repeat: repeat; background-origin: border-box; background-clip: border-box; opacity: 0.0; animation: stars2anime 1s linear 0s infinite alternate; -webkit-animation: stars2anime 1s linear 0s infinite alternate; アニメーション名 stars2anime に対応するタイムライン (@keyframes) を指定します opacity: 0.0; から opacity: 1.0; に変更して 見えるようにします @keyframes stars1anime { 0% { 100% { opacity: 0.0; @-webkit-keyframes stars1anime { 0% { 100% { opacity: 0.0; 惑星の画像を表示する 地球の画像 (images/earth1.png) を入れる #earth ボックスを記述します position は absolute にして 位置は top -10px と left -50px(#anime-box ボックスの左上端を基準と 6

した位置 ) で指定します width: 200px; height: 200px; と指定します #earth { top: -10px; left: -50px; width: 200px; height: 200px; 月の画像 (images/moon.png) を入れる #earth ボックスを記述します position は absolute にして 位置は top 5px と left 500px(#anime-box ボックスの左上端を基準とした位置 ) で指定します width: 55px; height: 55px; と指定します #moon { top: 5px; left: 500px; width: 55px; height: 55px; 土星の画像 (images/saturn2 53X100.png) を入れる #earth ボックスを記述します position は absolute にして 位置は top 15px と left 720px(#anime-box ボックスの左上端を基準 とした位置 ) で指定します width: 30px; height: 16px; と指定します #saturn { top: 15px; left: 720px; width: 30px; height: 16px; 飛び交う宇宙船のアニメーションを表示する スペースシャトルの画像 (images/spaceshuttle.png) を入れる #shuttle ボックスを記述します position は absolute にして 位置は top 5px と left -40px(#anime-box ボックスの左上端を基準とした位置 ) で指定します width: 32px; height: 18px; と指定します ボックスはアニメーション名を shuttleanime 実行時間を 20s イージングを linear 開始待ち時間を 0s 繰り返しを infinite 実行方向は normal で指定します #shuttle { top: 5px; left: -40px; width: 32px; height: 18px; border: none; 7

animation: shuttleanime 20s linear 0s infinite normal; -webkit-animation: shuttleanime 20s linear 0s infinite normal; アニメーション名 shuttleanime に対応するタイムライン (@keyframes) を指定します #anime-box の top: 5px; の位置から transform プロパティの treanslatex( ) 関数でX 方向へ #anime-box の右側へ飛び出すまで 810px 移動し 飛び出したら top: 5px; の位置から top: 30px; へ移し rotatez( ) 関数で時計回りに 180 度回転しスペースシャトルの画像を左右反転させます 左右反転したまま #anime-box の左側へ飛び出すまで 810px 戻します これによりスペースシャトルが宇宙空間を左右に飛び回るように見えます @keyframes shuttleanime { 0% { 49% { top: 5px; transform: translatex(810px); 51% { top: 30px; transform: translatex(810px) rotatez(180deg); 100% { top: 30px; transform: rotatez(180deg); @-webkit-keyframes shuttleanime { 0% { 49% { top: 5px; -webkit-transform: translatex(810px); 51% { top: 30px; -webkit-transform: translatex(810px) rotatez(180deg); 100% { top: 30px; -webkit-transform: rotatez(180deg); USSエンタープライズ号の画像 (images/uss-enterprise.png) を入れる #enterprise ボックスを記述します position は absolute にして 位置は top 30px と left 770px (#anime-box ボックスの左上端を基準とした位置 ) で指定します width: 32px; height: 16px; と指定します Transform プロパティの rotatez( ) 関数で時計回りに 180 度回転しス USSエンタープライズ号の画像を左右反転させておきます ボックスはアニメーション名を enterpriseanime 実行時間を 20s イージングを linear 開始待ち時間を 0s 繰り返しを infinite 実行方向は normal で指定します #enterprise { top: 30px; left: 770px; width: 32px; height: 16px; border: none; 8

transform: rotatez(180deg); -webkit-transform: rotatez(180deg); animation: enterpriseanime 20s linear 0s infinite normal; -webkit-animation: enterpriseanime 20s linear 0s infinite normal; アニメーション名 enterpriseanime に対応するタイムライン (@keyframes) を指定します #anime-box の top: 30px; の位置から transform プロパティの treanslatex( ) 関数でX 方向へ #anime-box の左側へ飛び出すまで-810px 移動し 飛び出したら top: 30px; の位置から top: 5px; へ移し rotatez( ) 関数で時計回りに 180 度回転していたUSSエンタープライズ号の画像を基へ戻すことで左右反転させます 左右反転したまま #anime-box の右側へ飛び出すまで 810px 戻します これによりUSSエンタープライズ号が宇宙空間を左右に飛び回るように見えます @keyframes enterpriseanime { 0% { 49% { top: 30px; transform: translatex(-810px) rotatez(180deg); 51% { top: 5px; transform: translatex(-810px) rotatez(0deg); 100% { top: 5px; transform: rotatez(0deg); @-webkit-keyframes enterpriseanime { 0% { 49% { top: 30px; -webkit-transform: translatex(-810px) rotatez(180deg); 51% { top: 5px; -webkit-transform: translatex(-810px) rotatez(0deg); 100% { top: 5px; -webkit-transform: rotatez(0deg); 次に大メニューの ul 要素のスタイルを指定します 大メニュー項目 3 つを入れる枠になり ます #menu-box>ul としているのは ul 要素は HTML 文書の中ではほかの場所でも記述さ れるので #menu-box の中の ul 要素に限定し しかも > を付けることにより #menu-box の子供の ul 要素 ( 大メニューの ul 要素 ) に限定してスタイルを指定するためです #menu-box の孫の ul 要素 ( 小メニューの ul 要素 ) には影響しません ul 要素は li 要素を 入れる領域として使用するので 次の指定をします 1 margin: 0px; padding: 0px; ul 要素はこの指定をしないと margin と padding の余白が自動的にとられてしまいます 2 list-style-type: none; ul 要素の下に配置される各 li 要素のテキストの先頭 に などのマークが付くのを防ぐために指定します 3border-right: 1px solid #999999; と指定しているのは li 要素 ( 大メニュー項目 ) 9

同士の間のボーダー幅を 1px にしたいため li 要素に border-right: none; の指定をしているので バーのいちばん右側のボーダー幅が 0px にならないように ul 要素の右側のボーダー幅を 1px で指定しています 4 小メニューが伸びた時に #menu-box の div 要素以降に記述されている HTML のコンテンツ ( テキストや画像等 ) が動くのを防ぐために #menu-box>ul( 大メニューの ul) を と指定し #menu-box に対する絶対位置としてあります なお 右側にコメントが付いているところがありますが 実際にスタイルシートにコードを記述する際には コメントは記述しなくてもかまいません /* 大メニュー ********************************************************************/ #menu-box>ul { /* 大メニューの ul */ margin: 0px; padding: 0px; /* この指定がないと margin と padding の余白が自動的に採られてしまう */ width: 764px; height: 52px; border-right: solid 1px #999999; list-style-type: none; /* 小メニューが伸びたときに 以降の HTML のコンテンツが動くのを防止するために必要 */ 大メニューの li 要素のスタイルを指定します #menu-box>ul>li としているのは #menu-box の子供の ul 要素 ( 大メニューの ul 要素 ) の子供の li 要素 ( 大メニュー項目 ) に限定してスタイルを指定するためです #menu-box の孫の ul 要素 ( 小メニューの ul 要素 ) の子供の li 要素 ( 小メニュー項目 ) には影響しません 大メニュー項目を横に並べたいので float: left; の指定をしています #menu-box>ul>li { width: 191px; /* 大メニューの幅 */ float: left; /* 大メニューを横に並べる */ li 要素に表示する a 要素のテキストのスタイルを指定します テキストにデコレーション ( 飾り ) が付かないように text-decoration: none; の指定をします text-decoration: none; がないと テキストにアンダーラインが付いたり リンク済みのテキストカラーに変わったりします ボーダーを border: 1px solid #999999; で指定していますが li 要素 ( 大メニュー項目 ) 同士の間のボーダー幅を 1px にしたいため li 要素に border-right: none; の指定をしています テキストの色を赤色で text-shadow プロパティでテキストの周りを白い影で囲んでいます 10

#menu-box>ul>li>a { /* 大メニューのテキスト */ text-decoration: none; border: 1px solid #999999; border-right: none; /* 大メニューの左右のボーダーを重ねる */ text-align: center; font-size: 26px; font-family: "MS P ゴシック ",Osaka," ヒラギノ角ゴ Pro",Verdana; color: #FF0000; text-shadow: 2px 2px 2px #FFFFFF, -2px -2px 2px #FFFFFF, 2px -2px 2px #FFFFFF, -2px 2px 2px #FFFFFF; line-height: 50px; display: block; 次に小メニューの ul 要素のスタイルを指定します 大メニュー項目を hover した時に下に伸びる小メニュー項目の枠になります margin-top: -52px; と指定しているのは 小メニューの枠を大メニュー項目に重ねておくためです 重ねておかないと大メニューの下側のはずれた部分を hover しても小メニューが伸びてしまいます opacity: 0.0; と指定して見えないようにしておきます /* 小メニュー ********************************************************************/ #menu-box ul ul { /* 小メニューの ul */ margin-top: -52px; padding: 0px; /* 小メニューを大メニューの位置に重ねる */ height: 52px; list-style-type: none; opacity: 0.0; /* 小メニューを不可視にする */ 大メニューの li 要素 ( 大メニュー項目 ) が hover された時の小メニューの ul 要素の変化 を指定します margin-top: 0px; と指定して大メニュー項目に重ねていた小メニューの枠 を大メニュー項目の下に移動し opacity: 1.0; と指定して 見えるようにします #menu-box>ul>li:hover ul { /* この変化には transition を指定せず 瞬時に変化させる */ margin-top: 0px; /* 小メニューを大メニューの下の位置に移動する */ opacity: 1.0; /* 小メニューを可視にする */ 小メニュー項目の li 要素の指定をします height: 0px; と opacity: 0.0; を指定して見え ないようにしておきます li 要素を徐々に高さが増して目に見えるように変化させるため transition の指定をします 0.5 秒で ease-in-out で変化するようにしています 11

#menu-box ul li ul li { /* 小メニューを 0.5 秒で変化するように指定 */ width: 190px; height: 0px; opacity: 0.0; transition: 0.5s ease-in-out; -webkit-transition: 0.5s ease-in-out; 大メニュー項目の li 要素が hover された時の小メニュー項目の li 要素の変化を指定しま す height: 51px; と opacity: 0.8; を指定して li 要素を徐々に高さが増して目に見え るように変化させます #menu-box>ul>li:hover ul li { height: 51px; opacity: 1.0; /* 大メニューの hover 時に小メニューの高を変え 可視にする */ li 要素に表示する a 要素のテキストのスタイルを指定します width: 100%; height: 100%; と指定することにより li の幅と高さと同じになります しかも height: 100%; の指定により li の高さが徐々に高くなるのに合わせて a 要素の高さも変化します 背景色を background-color: rgba(255, 255, 255, 0.5); で白色の半透明にしています ボーダーを border: 1px solid #999999; で指定していますが li 要素 ( 小メニュー項目 ) 同士の間の上下のボーダー幅を 1px にしたいため li 要素に border-top: none; の指定をしています overflow: hidden; と outline: none; を指定しているのは Firefox ブラウザの場合にリンク済みのデコレーションとして点線の枠取りが表示されるのを防ぐためです #menu-box ul ul li a { /* 小メニューのテキスト */ text-decoration: none; width: 100%; height: 100%; background-color: rgba(255, 255, 255, 0.5); border: 1px solid #999999; border-top: none; /* 小メニューの上下のボーダーを重ねる */ text-align: center; text-overflow: clip; /* テキストの overflow 時は カットする */ font-size: 26px; font-family: "MS P ゴシック ",Osaka," ヒラギノ角ゴ Pro",Verdana; color: #000000; text-shadow: 2px 2px 2px #666666; line-height: 50px; display: block; /* Firefox の時の枠線を消す */ overflow: hidden; outline: none; 12

li 要素が hover された時の a 要素の変化を指定します 背景色を background-color: rgba(0, 0, 0, 0.5); で黒色の半透明に テキストの色を白色 #FFFFFF に変化させます #menu-box ul ul li a:hover { /* 小メニューの hover 時に背景色とテキストの色を変える */ background-color: rgba(0, 0, 0, 0.5); color: #FFFFFF; 13