概要
「○Pad」などデフォルトでマウスが使えないタブレットが大嫌いです…
ポインティングデバイスの優位性は明らかですし…何より…
何故わざわざ劣化した「OS」を使わなければならないのかと
なので…
当サイトは「○Pad」で閲覧すると…ページ遷移などで…
ストレスを感じるであろうデザインに敢えてしていますし…
そもそも閲覧出来ないコンテンツも多数存在します…( ̄ー ̄) 邪笑®
そんな訳で…実装しているタブナビゲーションを解説する前に…
新たに(3種類目の解説です
)ナビゲーションを組んでみました…
「onmouseover」「onmouseout」属性を使用しますので…
「JavaScript」を許可していない環境や…
ポインティングデバイスが操作できない環境では無効ですので注意して下さい…
お読みになるメリットは…この記事と過去記事を組み合わせると…
実装しているヘッダーのタブナビゲーションを…
遅筆な私の記事を待たずとも構築出来る事です
( ̄^ ̄) エッヘン
【3階層】ドロップダウンナビゲーションのサンプル
【3階層】ドロップダウンナビゲーションの「CSS」
【3階層】ドロップダウンナビゲーションの「CSS」
#p198nav{width:400px;height:25px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAZBAMAAAACvllMAAAALVBMVEUEBAQKCgo2NjYSEhIcHBwwMDAXFxcoKChAQEAkJCQsLCw8PDwhISE6OjoPDw8N9rweAAAAK0lEQVQI12NoAMINDBcYFIAwAAgXMBQA4QSGAwwOQJgAhAZA+IBBAAjBAAAL0QjRy41uOwAAAABJRU5ErkJggg==);background-position:top left;background-repeat:repeat-x;text-align:center;}
#p198nav ul{margin:0;padding:0;list-style-type:none}
#p198nav ul li{float:left;width:100px;height:25px;line-height:25px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAZBAMAAAACvllMAAAALVBMVEUEBAQKCgo2NjYSEhIcHBwwMDAXFxcoKChAQEAkJCQsLCw8PDwhISE6OjoPDw8N9rweAAAAK0lEQVQI12NoAMINDBcYFIAwAAgXMBQA4QSGAwwOQJgAhAZA+IBBAAjBAAAL0QjRy41uOwAAAABJRU5ErkJggg==);background-position:top left;background-repeat:repeat-x;overflow:hidden;position:relative;z-index:1}
.p198down>a::after{content:"";width:0;height:0;border-width:5px 3px;border-style:solid;border-color:#fff transparent transparent transparent;position:absolute;top:10px;right:10px}
#p198nav ul li ul li{float:left;width:130px;height:25px;line-height:25px;overflow:hidden;position:relative;z-index:1}
#p198nav .p198on{overflow:visible}
#p198nav .p198sub1{opacity:.8;filter:Alpha(Opacity=80);position:absolute;left:-1px}
#p198nav .p198sub2{opacity:.8;filter:Alpha(Opacity=80);position:absolute;top:5px;left:129px}
.p198sub1 li,.p198sub2 li{border-left:solid 1px #333;border-bottom:solid 1px #333}
#p198nav a{text-decoration:none;white-space:nowrap;border-right:solid 1px #333;font-weight:normal;color:#999;display:block}
#p198nav .p198sub1 a{color:#5af}
#p198nav .p198sub2 a{color:#5ff}
#p198nav a:hover{color:#fff}
#p198nav .p198sub1 a:hover{color:#f55}
#p198nav .p198sub2 a:hover{color:#f5a}
#p198nav .c-1 a:hover{border-left:5px solid #f15b55}
#p198nav .c-2 a:hover{border-left:5px solid #1e90ff}
#p198nav .c-3 a:hover{border-left:5px solid #dda0dd}
#p198nav .c-4 a:hover{border-left:5px solid #2e8b57}
「id」「class」名はご自由に弄って下さい…
背景画像を「base64」変換して組み込んでありますのでそのまま使用出来ます…
「CSS3」の「opacity」プロパティを使用していますが…
透過が不要な場合…削除しても表示には…さして問題はありません…
1階層目の表示領域を設置領域一杯にしたい場合は「width:400px;」を削除し…
1階層目の表示領域を中央寄せにしたい場合は…
「margin:0 auto;」を「#p198nav」に記述して下さい…
1階層目のリストの幅は「100px」…2階層目以降は「130px」です…
3階層目のリストの表示位置は下に「5px」右に「129px」ずらしています…
4階層目以降も「.p198sub3」「.p198sub4」…などとして作成出来ます…
ホバー時の左側枠線は…リスト毎に下層まで同一の枠線が表示されます…
使用している色見本を置いておきます…
■ 「#fff」南向き三角形の色
■ 「#333」枠線色
■ 「#999」1階層目の文字色
■ 「#fff」1階層目のホバー時文字色
■ 「#5af」2階層目の文字色
■ 「#f55」2階層目のホバー時文字色
■ 「#5ff」3階層目の文字色
■ 「#f5a」3階層目のホバー時文字色
■ 「#f15b55」1番目のリストのホバー時左側枠線色
■ 「#1e90ff」2番目のリストのホバー時左側枠線色
■ 「#dda0dd」3番目のリストのホバー時左側枠線色
■ 「#2e8b57」4番目のリストのホバー時左側枠線色
【3階層】ドロップダウンナビゲーションの「HTML」
【3階層】ドロップダウンナビゲーションの「HTML」
<div id="p198nav">
<ul>
<li onmouseover="this.className='p198on p198down c-1'" onmouseout="this.className='p198down'" class="p198down"><a href="#">Menu1</a>
<ul class="p198sub1">
<li onmouseover="this.className='p198on p198down'" onmouseout="this.className='p198down'" class="p198down"><a href="#">SubMenu 1-1</a>
<ul class="p198sub2">
<li><a href="#">SubMenu 2-1</a></li>
<li><a href="#">SubMenu 2-2</a></li>
<li><a href="#">SubMenu 2-3</a></li>
</ul>
</li>
<li><a href="#">SubMenu 1-2</a></li>
<li><a href="#">SubMenu 1-3</a></li>
</ul>
</li>
<li onmouseover="this.className='p198on p198down c-2'" onmouseout="this.className='p198down'" class="p198down"><a href="#">Menu2</a>
<ul class="p198sub1">
<li><a href="#">SubMenu 1-1</a></li>
<li onmouseover="this.className='p198on p198down'" onmouseout="this.className='p198down'" class="p198down"><a href="#">SubMenu 1-2</a>
<ul class="p198sub2">
<li><a href="#">SubMenu 2-1</a></li>
<li><a href="#">SubMenu 2-2</a></li>
<li><a href="#">SubMenu 2-3</a></li>
</ul>
</li>
<li><a href="#">SubMenu 1-3</a></li>
</ul>
</li>
<li onmouseover="this.className='p198on p198down c-3'" onmouseout="this.className='p198down'" class="p198down"><a href="#">Menu3</a>
<ul class="p198sub1">
<li><a href="#">SubMenu 1-1</a></li>
<li><a href="#">SubMenu 1-2</a></li>
<li onmouseover="this.className='p198on p198down'" onmouseout="this.className='p198down'" class="p198down"><a href="#">SubMenu 1-3</a>
<ul class="p198sub2">
<li><a href="#">SubMenu 2-1</a></li>
<li><a href="#">SubMenu 2-2</a></li>
<li><a href="#">SubMenu 2-3</a></li>
</ul>
</li>
</ul>
</li>
<li onmouseover="this.className='p198on p198down c-4'" onmouseout="this.className='p198down'" class="p198down"><a href="#">Menu4</a>
<ul class="p198sub1">
<li><a href="#">SubMenu 1-1</a></li>
<li><a href="#">SubMenu 1-2</a></li>
<li><a href="#">SubMenu 1-3</a></li>
</ul>
</li>
</ul>
</div>
リストに「JavaScript」を記述しています…
「onmouseover」属性でマウスホバー時に…
非表示領域の表示のクラス名「p198on」…
南向き三角形のクラス名「p198down」…
枠線色のクラス名「c-1/c-2/c-3/c-4」…を付与し…
「onmouseout」属性でマウスが外れている状態時に…
南向き三角形のクラス名「p198down」…を付与しています…
見易さ重視で改行やインデントを入れていますが…
設置領域の設定によっては表示場所がズレる場合もあるでしょうから…
改行やインデントの削除で対応して下さい…
以上です…最後までお読みいただきましてありがとうございます
0 Comments :
View Comments :: Click!!
0 Comments :
Post a Comment :: Click!!
コメントを投稿