• 検索結果がありません。

M E N U 1 M E N U 1 M E N U 1

大メニューのli要素

h1要素を transform-origin: 0 100%; を 起点として、時計回りに90度回転させま す。

h1要素の座標系は90度回転し、上下方向が X軸になっているので、X軸方向へ-50px移動 すると、上方向へ移動し、li要素に収めること ができます。

h1要素

次に小メニューの ul 要素のスタイルを指定します。大メニュー項目を hover した時に横に 伸びる小メニュー項目の3つの枠になります。margin: -50px 0px 0px 50px;と指定してい るのは、小メニューの枠を大メニュー項目の右横に並べておくためです。

rgba( 255, 255, 255, 0.0 ) 100% );

background-image: -webkit-linear-gradient( top, rgba( 255, 255, 255, 0.0 ) 0%, rgba( 255, 255, 255, 0.6 ) 50%, rgba( 255, 255, 255, 0.6 ) 50%, rgba( 255, 255, 255, 0.0 ) 100% );

background-clip: border-box;

background-repeat: no-repeat;

text-align: center;

font-size: 36px;

font-weight: bold;

font-family: "MS Pゴシック",Osaka,"ヒラギノ角ゴ Pro",Verdana;

color: #3333FF;

text-shadow: 2px 2px 2px #666666;

line-height: 50px;

display: block;

cursor: pointer;

/* 大メニューのテキストを時計回りに 90 度回転させる。 */

transform-origin: 0 100%;

-webkit-transform-origin: 0 100%;

transform: rotateZ(90deg) translateX(-50px);

-webkit-transform: rotateZ(90deg) translateX(-50px);

}

© 2016 電脳Papa 39 小メニュー項目の li 要素の指定をします。

li 要素に表示する a 要素のテキストのスタイルを指定します。padding: 0px 0px 0px 10px;

と指定しているのは、テキストの先頭に 10px 分の空白を開けたいためです。

li 要素が hover された時の a 要素の変化を指定します。背景色を赤灰色 #FF9999 に、テキ ストの色を白 #FFFFFF に変化させます。

/* 小メニュー ********************************************************************/

#menu-box ul ul { /* 小メニューの ul */

margin: -50px 0px 0px 50px; padding: 0px;

width: 300px; height: 200px;

background-color: #EEEEEE;

list-style-type: none;

}

#menu-box ul li ul li { /* 小メニュー */

width: 300px; height: 30px;

}

#menu-box ul li ul li:hover a { /* 小メニューの hover 時に背景色とテキストの色を 変える */

background-color: #FF9999;

color: #FFFFFF;

}

#menu-box ul li ul li a { /* 小メニューのテキスト */

margin: 0px; padding: 0px 0px 0px 10px;

text-decoration: none;

text-align: left;

text-overflow: clip; /* テキストの overflow 時は、カットする */

font-size: 26px;

font-weight: bold;

font-family: "MS Pゴシック",Osaka,"ヒラギノ角ゴ Pro",Verdana;

color: #000000;

text-shadow: 2px 2px 2px #666666;

line-height: 30px;

display: block;

/* Firefox の時の枠線を消す */

overflow: hidden; outline: none;

}

© 2016 電脳Papa 40

〔横に広がるアコーディオンメニュー2〕

大メニューのメニュー項目名を縦書きにしてあります。大メニューをマウスカーソルで hover すると、アコーディオンのように大メニューの間が広がり、小メニューが現れます。

小メニューを hover すると、メニューの背景色とテキストの色が変わります。

【NaviMenu03B の説明】

〔HTML の記述 (NaviMenu03B.html)〕

サンプルCSS11の NaviMenu03.html の<title>のテキストが「NaviMenu03B」に、<link>

の href の css ファイル名が「NaviMenu03B.css」に変更された内容です。大メニューの項 目名 MENU1、MENU2、MENU3 は1文字ずつ縦向きに回転させるので、1文字ずつ span 要素で 指定しています。

サンプルCSS12

<!DOCTYPE html>

<html>

<head>

<title>NaviMenu03B</title>

<meta charset="UTF-8">

<link rel="stylesheet" type="text/css" href="NaviMenu03B.css">

</head>

<body>

<h1>■アコーディオンメニューを作る。</h1>

<div id="menu-box">

<ul>

<li>

<h1><span>M</span><span>E</span><span>N</span><span>U</span><span>1</span>

</h1>

<ul>

<li><a href="linkPages/page1_1.html">PAGE1_1aaaaaaaa</a></li>

<li><a href="linkPages/page1_2.html">PAGE1_2bb</a></li>

<li><a href="linkPages/page1_3.html">PAGE1_3cccccccccc</a></li>

</ul>

</li>

<li>

<h1><span>M</span><span>E</span><span>N</span><span>U</span><span>2</span>

</h1>

© 2016 電脳Papa 41

〔CSS の記述(NaviMenu03B.css)〕

サンプルCSS11の NaviMenu03 と違う部分だけ説明します。

li 要素に表示する h1 要素のスタイルを指定します。背景色を background-color: #99CCFF;

(淡いブルー)で指定し、その上に background-image を利用して白色のグラデーション

(linear-gradient)をかけて、メニューバーの輝きを表現しています。

<ul>

<li><a href="linkPages/page2_1.html">PAGE2_1dddd</a></li>

<li><a href="linkPages/page2_2.html">PAGE2_2eeeeeeeeee</a></li>

<li><a href="linkPages/page2_3.html">PAGE2_3fff</a></li>

<li><a href="linkPages/page2_4.html">PAGE2_4gggggggg</a></li>

</ul>

</li>

<li>

<h1><span>M</span><span>E</span><span>N</span><span>U</span><span>3</span>

</h1>

<ul>

<li><a href="linkPages/page3_1.html">PAGE3_1hhhhh</a></li>

<li><a href="linkPages/page3_2.html">PAGE3_2iii</a></li>

<li><a href="linkPages/page3_3.html">PAGE3_3jjjjjjjjjjjjjjjjj</a></li>

<li><a href="linkPages/page3_4.html">PAGE3_4kkk</a></li>

<li><a href="linkPages/page3_5.html">PAGE3_5llllllll</a></li>

</ul>

</li>

</ul>

</div>

</body>

</html>

#menu-box>ul>li h1 { /* 大メニューのスタイル */

margin: 0px; padding: 16px 0px 0px 10px;

width: 50px; height: 200px;

cursor: pointer;

background-color: #99CCFF;

/* background-color に background-image で白のグラデーションをかぶせる */

background-image: linear-gradient( to right, rgba( 255, 255, 255, 0.0 ) 0%, rgba( 255, 255, 255, 0.6 ) 50%, rgba( 255, 255, 255, 0.6 ) 50%, rgba( 255, 255, 255, 0.0 ) 100% );

background-image: -webkit-linear-gradient( left, rgba( 255, 255, 255, 0.0 ) 0%, rgba( 255, 255, 255, 0.6 ) 50%, rgba( 255, 255, 255, 0.6 ) 50%,

rgba( 255, 255, 255, 0.0 ) 100% );

background-clip: border-box;

background-repeat: no-repeat;

}

© 2016 電脳Papa 42

hi 要素の中のテキストを1文字ずつ縦向きに並べるために、各文字の span 要素を width:

30px; height: 32px;で指定し、float: left;を指定して、1文字ずつ縦に並べています。

テキストの色を color: #3333FF;(ブルー)に、テキストの影を text-shadow: 2px 2px 2px

#666666;で指定しています。

上記以外の指定は、NaviMenu03.css と同じです。

〔縦に広がるアコーディオンメニュー1〕

大メニューをマウスカーソルで hover すると、アコーディオンのように大メニューの間が 広がり、小メニューが現れます。小メニューを hover すると、メニューの背景色とテキス

サンプルCSS13

#menu-box>ul>li h1 span { /* 大メニューのテキスト1文字ごと縦に並べる */

margin: 0px; padding: 0px;

width: 30px; height: 32px;

text-align: center;

font-size: 28pt;

font-weight: bold;

font-family: "MS Pゴシック",Osaka,"ヒラギノ角ゴ Pro",Verdana;

#menu-box>ul>li h1 span { /* 大メニューのテキスト1文字ごと縦に並べる */

margin: 0px; padding: 0px;

width: 30px; height: 32px;

text-align: center;

font-size: 36px;

font-weight: bold;

font-family: "MS Pゴシック",Osaka,"ヒラギノ角ゴ Pro",Verdana;

color: #3333FF;

text-shadow: 2px 2px 2px #666666;

float: left;

}

© 2016 電脳Papa 43 トの色が変わります。

【NaviMenu04 の説明】

〔HTML の記述 (NaviMenu04.html)〕

NaviMenu03.html の<title>のテキストが「NaviMenu04」に、<link>の href の css ファイル 名が「NaviMenu04.css」に変更された内容です。横長のメニューなので、小メニューのテ キストを NaviMenu03.html よりも長くしてあります。

<!DOCTYPE html>

<html>

<head>

<title>NaviMenu04</title>

<meta charset="UTF-8">

<link rel="stylesheet" type="text/css" href="NaviMenu04.css">

</head>

<body>

<h1>■アコーディオンメニューを作る。</h1>

<div id="menu-box">

<ul>

<li>

<h1>MENU1</h1>

<ul>

<li><a href="linkPages/page1_1.html">PAGE1_1aaaaaaaaaaaaaaaaaaaaaaaa</a>

</li>

<li><a href="linkPages/page1_2.html">PAGE1_2bbbbbbbbbbbbbbb</a></li>

<li><a href="linkPages/page1_3.html">PAGE1_3ccccccccccc</a></li>

</ul>

</li>

<li>

<h1>MENU2</h1>

<ul>

<li><a href="linkPages/page2_1.html">PAGE2_1qqqqqqqqqqqqqqqqqqqqqq</a>

</li>

<li><a href="linkPages/page2_2.html">PAGE2_2sssssssssssssssssssssssss</a>

</li>

<li><a href="linkPages/page2_3.html">PAGE2_3zzzzzzzzzz</a></li>

<li><a href="linkPages/page2_4.html">PAGE2_4vvvvvvvvvvvvvvvvvv</a></li>

</ul>

</li>

<li>

<h1>MENU3</h1>

<ul>

<li><a href="linkPages/page3_1.html">PAGE3_1hhhhhhhhhhhhhhhhhhhhhhh</a>

</li>

<li><a href="linkPages/page3-2.html">PAGE3-2ffffffffffffffffff</a></li>

<li><a href="linkPages/page3_2.html">PAGE3_2ffffffffffffffffff</a></li>

<li><a href="linkPages/page3_3.html">PAGE3_3gggggggg</a></li>

<li><a href="linkPages/page3_4.html">PAGE3_4kkkkkkkkkkkkkkkkkkkkk</a></li>

<li><a href="linkPages/page3_5.html">PAGE3_5nnnnnnnnnn</a></li>

</ul>

© 2016 電脳Papa 44

〔CSS の記述(NaviMenu04.css)〕

先ず、id 名が#menu-box の div 要素のスタイルを指定します。右側にコメントが付いてい るところがありますが、実際にスタイルシートにコードを記述する際には、コメントは記 述しなくてもかまいません。

次に大メニューの ul 要素のスタイルを指定します。大メニュー項目3つを入れる枠になり ます。border-top: 1px solid #999999;と指定しているのは、li 要素(大メニュー項目)

同士の間のボーダー幅を 1px にしたいため、li 要素に border-top: none; の指定をしてい るので、大メニューのいちばん上のボーダー幅が 0px にならないように、ul 要素の上のボ ーダー幅を 1px で指定しています。

大メニューの li 要素のスタイルを指定します。ボーダーを border: 1px solid #999999;

で指定していますが、li 要素同士の間のボーダー幅を 1px にしたいため、li 要素に border-top: none; の指定をしています。大メニューを hover した時に、アコーディオン のように大メニューの間が広がるように変化させるため、transition の指定をします。1 秒で ease-in-out で変化するようにしています。

#menu-box {

margin: 10px 0px 10px 15px;

width: 402px; height: 94px;

position: relative;

}

/* 大メニュー ********************************************************************/

#menu-box>ul {

margin: 0px; padding: 0px; /* この指定がないと、margin と padding の余白が 自動的に採られてしまう。 */

width: 402px; height: 93px;

border-top: 1px solid #999999;

list-style-type: none;

}

</li>

</ul>

</div>

</body>

</html>

© 2016 電脳Papa 45

大メニューの li 要素が hover された時の変化を指定します。height: 200px; を指定して、

li 要素の高さが徐々に伸びるように変化させます。

li 要素に表示する h1 要素のテキストのスタイルを指定します。padding: 0px 0px 0px 10px;

と指定しているのは、テキストの先頭に 10px 分の空白を開けたいためです。

li 要 素 に 表 示 す る h1 要 素 の テ キ ス ト の ス タ イ ル を 指 定 し ま す 。 背 景 色 を background-color: #99CCFF;(淡いブルー)で指定し、その上に background-image を利用 して白色のグラデーション(linear-gradient)をかけて、メニューバーの輝きを表現して います。テキストの色を color: #3333FF;(ブルー)に、テキストの影を text-shadow: 2px 2px 2px #666666;で指定しています。

#menu-box>ul>li:hover { /* 大メニューの hover 時に大メニューの高さを変える */

height: 210px; /* (小メニューの height × 小メニューMax数 + 大メニューの height) */

}

#menu-box>ul>li {

width: 400px; height: 30px;

border: 1px solid #999999;

border-top: none;

overflow: hidden; /* この大メニューの overflow: hidden;の指定で 以下の全ての要素が overflow しなくなる。 */

transition: 1s ease-in-out;

-webkit-transition: 1s ease-in-out;

}

#menu-box>ul>li h1 { /* 大メニューのテキスト */

margin: 0px; padding: 0px 0px 0px 10px;

background-color: #99CCFF;

/* background-color に background-image で白のグラデーションをかぶせる */

background-image: linear-gradient( to bottom, rgba( 255, 255, 255, 0.0 ) 0%, rgba( 255, 255, 255, 0.6 ) 50%, rgba( 255, 255, 255, 0.6 ) 50%,

rgba( 255, 255, 255, 0.0 ) 100% );

background-image: -webkit-linear-gradient( top, rgba( 255, 255, 255, 0.0 ) 0%, rgba( 255, 255, 255, 0.6 ) 50%, rgba( 255, 255, 255, 0.6 ) 50%,

rgba( 255, 255, 255, 0.0 ) 100% );

background-clip: border-box;

background-repeat: no-repeat;

text-align: left;

font-size: 22px;

© 2016 電脳Papa 46

次に小メニューの ul 要素のスタイルを指定します。大メニュー項目を hover した時に横に 伸びる小メニュー項目の3つの枠になります。margin: -50px 0px 0px 50px;と指定してい るのは、小メニューの枠を大メニュー項目の右横に並べておくためです。

小メニュー項目の li 要素の指定をします。

li 要素に表示する a 要素のテキストのスタイルを指定します。padding: 0px 0px 0px 10px;

と指定しているのは、テキストの先頭に 10px 分の空白を開けたいためです。

/* 小メニュー ********************************************************************/

#menu-box ul ul { /* 小メニューの ul */

margin: 0px; padding: 0px; /* この指定がないと、margin と padding の余白が 自動的に採られてしまう。 */

width: 400px; height: 210px;

background-color: #EEEEEE;

list-style-type: none;

}

#menu-box ul li ul li { /* 小メニュー */

width: 400px; height: 30px;

}

#menu-box ul li ul li a { /* 小メニューのテキスト */

margin: 0px; padding: 0px 0px 0px 10px;

text-decoration: none;

text-align: left;

text-overflow: clip; /* テキストの overflow 時は、カットする */

font-size: 16px;

font-weight: bold;

font-family: "MS Pゴシック",Osaka,"ヒラギノ角ゴ Pro",Verdana;

color: #000000;

text-shadow: 2px 2px 2px #666666;

line-height: 24px;

display: block;

font-weight: bold;

font-family: "MS Pゴシック",Osaka,"ヒラギノ角ゴ Pro",Verdana;

color: #3333FF;

text-shadow: 2px 2px 2px #666666;

line-height: 30px;

display: block;

cursor: pointer;

}

関連したドキュメント