<div class="at_main" id="at_main"> <dl> <dd> <h2>撰寫純 CSS 彈出式功能表的原則及實作 By shawl.qiu</h2> <br>#摘要: <br>本文介紹了使用 CSS 編寫適用於 Opera, Firefox, IE 的多重彈出式功能表<br>## #說明:<br>編寫 CSS 彈出選單的重點不外乎當滑鼠移到目標上時, 顯示隱藏的標籤. <br>要隱藏的標籤使用 display:none; 屬性進行隱藏. <br>觸發顯示隱藏標籤主要使用 :hover 屬性, 並用 display:block; 顯示隱藏的標籤.<br><br>但由於瀏覽器對 CSS 的支援並非一致.<br>#對於 Opera 或 Firefox, 我們可以寫出純 CSS , 他們支援任何標籤的 :hover 屬性.<br>而對於 IE 瀏覽器, :hover 只對 a 標籤起作用, 但我們可以使用腳本的 onmouseover, onmouseout 模擬出其他標籤的屬性.<br>編寫適用於 IE 的 CSS 彈出式功能表必須使用到少許的腳本.<br><br>#目錄:<br>1. 編寫直排右側彈出的 CSS 選單. <br>1.1 真正的基於 Opera, CSSrefox <br>1.1 真正的基於 Opera, Firefox <br>1.1 真正的基於 Opera, Firefox CSS彈出式選單<br>1.2 相容 IE, Opera, Firefox 的 CSS 彈出式功能表(腳本實作)<br><br>2. 編寫橫排底部彈出的 CSS 功能表. <br>2.1 真正的基於彈出式Opera、選單<br>2.2 相容 IE, Opera, Firefox 的 CSS 彈出式選單(腳本實作)<br><br>3. 結論<br><br>#4. 預覽<br><br>shawl.qiu<br><a href="http://blog.csdn.net/btbtd" target="_blank"></a>4. 預覽<br><br>shawl.qiu##2006<br>#4. 預覽<br><br>shawl.qiu##2006<ol class="linenum">#4. 預覽<strong></strong>shawl.qiu##2006<li>#4. 預覽</li> <li><a href="http://www.w3.org/TR/html4/loose.dtd" target="_blank">shawl.qiu</a></li> <li> <li>#4. 預覽</li> <li> <li>shawl.qiu##2006</li> <li>##4. 預覽</li> <li> <li>shawl.qiu</li> <li>####### -10-01######http://blog.csdn.net/btbtd#########1. 寫直排右邊彈出的 CSS 選單. #######1.1 真正的基於 Opera, Firefox 純 CSS 彈出式選單### ######linenum### ###<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" ###" ###http://www.w3.org/TR/html4/loose.dtd###"> ###<html> ###<head> ###<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> ###<title>Untitled Document</title> ###<style type="text/css"> ###/*<![CDATA[*/ /* shawl.qiu pure css popup menu demo */ ### body{ margin:0px auto; width:768px; /* 定義頁以中顯示,*/} ### *{text-decoration:none!important; /* 定義所有連結不顯示底線 */}<LI> .pmVerticalRightOut{background-color:#fff!important; /* 定義主選單域背景色 */} <LI> .pmVerticalRightOut .level{ /* 定義一級類別屬性 */ <LI> width:120px; /* 寬度 */ <LI> height:17; /* 高度 */ <LI> position:relative; /* 顯示位置為相對位置 */ <LI> display:block; /* 以區塊模式顯示 */ <LI> background-color:#D8D8D8; /* 背景色 */ <LI> padding:0px 2px; /* 文字內補丁間隔 */ <LI> margin:0px 0px 1px 0px; /* 選單外補丁間隔 */ <LI> } <LI> .pmVerticalRightOut .level:hover { /* 當滑鼠劃過一級選單時 */ <LI> background-color:#6633FF; /* 背景色 */ <LI> color:#FFFFFF; /* 文字顏色 */ <LI> } <LI> .pmVerticalRightOut .level_{display:none; /* 預設隱藏二級類別 */} <LI> <LI> .pmVerticalRightOut .level:hover .level_ { /* 滑鼠劃過時觸發顯示二級類別 */ <LI> display:block; /* 以區塊顯示 */ <LI> left:124px; /* 相對於一級類別所顯示的位置 */ <LI> width:120px; /* 寬度 */ <LI> height:auto; /* 高度 */ <LI> top:0px; /* 相對於一級類別所在位置的頂端 */ <LI> background-color:#EFEFEF; /* 定義背景色 */ <LI> position:absolute; /* 位置為絕對位置 */ <LI> }<LI> .pmVerticalRightOut .level:hover .level_ .level_title { <LI> /* 定義二級類別標題樣式 */ <LI> font-weight:bold; /* 字體加粗 */ <LI> background-color:#A7ADFE; /* 背景色 */ <LI> color:white; /* 文字顏色 */ <LI> } <LI> .pmVerticalRightOut .level:hover .level_ a:hover { <LI> /* 定義二級類別連結顯示樣式 */ <LI> background-color:#F83658; /* 背景色 */ <LI> color:white; /* 文字顏色 */ <LI> } <LI> .pmVerticalRightOut .level_ * { <LI> /* 定義所有二級類別一般屬性 */ <LI> display:block; /* 以區塊顯示 */ <LI> color:black; /* 文字顏色 */ <LI> padding:0px 2px; /* 內補丁間隔 */ <LI> }<LI>/*]]>*/ </li> <li></style> </li> <li></head> </li> <li><body> </li> <li><p/><p/><p/><p/><p/> </li> <li><div class="pmVerticalRightOut" id="pmVerticalRightOut"> </li> <li> <div class="level"> </li> <li> <div class="levelTitle">level</div> </li> <li> <div class="level_"> </li> <li> <div class="level_title">level_ title</div> </li> <li> <a href="?cat=level&id=1">level_ 標題 1</a> </li> <li> <a href="?cat=level&id=2">level_ 標題 2</a> </li> <li> <a href="?cat=level&id=3">level_ 標題 3</a> </li> <li> <a href="?cat=level&id=4">level_ 標題 4</a> </li> <li> <a href="?cat=level&id=5">level_ 標題 5</a> </li> <li> </div> </li> <li> </div> </li> <li> <div class="level"> </li> <li> <div class="levelTitle">level 1</div> </li> <li> <div class="level_"> </li> <li> <div class="level_title">level_ title</div> </li> <li> <a href="?cat=level_1&id=1">level_ 標題 1</a> </li> <li> <a href="?cat=level_1&id=2">level_ 標題 2</a> </li> <li> <a href="?cat=level_1&id=3">level_ title 3</a> </li> <li><a href="?cat=level_1&id=4">level_標題4</a> </li> <li> <a href="?cat=level_1&id=5">level_ 標題 5</a> </li> <li> </div> </li> <li> </div> </li> <li> <div class="level"> </li> <li> <div class="levelTitle">level 2</div> </li> <li> <div class="level_"> </li> <li> <div class="level_title">level_ title</div> </li> <li> <a href="?cat=level_2&id=1">level_ 標題 1</a> </li> <li> <a href="?cat=level_2&id=2">level_ 標題 2</a> </li> <li> <a href="?cat=level_2&id=3">level_ 標題 3</a> </li> <li> <a href="?cat=level_2&id=4">level_ 標題 4</a> </li> <li> <a href="?cat=level_2&id=5">level_ 標題 5</a> </li> <li> </div> </li> <li> </div> </li> <li> <div class="level"> </li> <li> <div class="levelTitle">level 3</div> </li> <li> <div class="level_"> </li> <li> <div class="level_title">level_ title</div> </li> <li> <a href="?cat=level_3&id=1">level_ 標題 1</a> </li> <li> <a href="?cat=level_3&id=2">level_ 標題 2</a> </li> <li><a href="?cat=level_3&id=3">level_ title 3</a> </li> <li> <a href="?cat=level_3&id=4">level_ 標題 4</a> </li> <li> <a href="?cat=level_3&id=5">level_ 標題 5</a> </li> <li> </div> </li> <li> </div> </li> <li> <div class="level"> </li> <li> <div class="levelTitle">level 4</div> </li> <li> <div class="level_"> </li> <li> <div class="level_title">level_ title</div> </li> <li> <a href="?cat=level_4&id=1">level_ 標題 1</a> </li> <li> <a href="?cat=level_4&id=2">level_ 標題 2</a> </li> <li> <a href="?cat=level_4&id=3">level_ title 3</a> </li> <li> <a href="?cat=level_4&id=4">level_ 標題 4</a> </li> <li> <a href="?cat=level_4&id=5">level_ 標題 5</a> </li> <li> </div> </li> <li> </div> </li> <li></div> </li> <li></body> </li> <li></html> </li> </ol> <br>1.2 相容 IE、Opera、Firefox 的 CSS 彈出式選單(腳本實作)<br> <ol class="linenum"> <strong>linenum</strong> <li><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" <LI>" <A href="http://www.w3.org/TR/html4/loose.dtd" target=_blank>http://www.w3.org/TR/html4/loose.dtd</A>"> </li> <li><html> </li> <li><head> </li> <li><meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </li> <li><title>Untitled Document</title> </li> <li><style type="text/css"> </li> <li>/*<![CDATA[*/ /* shawl.qiu pure css popup menu demo */ <LI> body{ margin:0px auto; width:768px; /* 定义页面居中显示,*/} <LI> *{text-decoration:none!important; /* 定义所有链接不显示下划线 */} <LI> /* ------------------- start 针对 Opera, Firefox 的 CSS 弹出菜单 -------------------*/<LI> .pmVerticalRightOut{background-color:#fff!important; /* 定義主選單域背景色 */} <LI> .pmVerticalRightOut .level{ /* 定義一級類別屬性 */ <LI> width:120px; /* 寬度 */ <LI> height:17; /* 高度 */ <LI> position:relative; /* 顯示位置為相對位置 */ <LI> display:block; /* 以區塊模式顯示 */ <LI> background-color:#D8D8D8; /* 背景色 */ <LI> padding:0px 2px; /* 文字內補丁間隔 */ <LI> margin:0px 0px 1px 0px; /* 選單外補丁間隔 */ <LI> } <LI> .pmVerticalRightOut .level:hover { /* 當滑鼠劃過一級選單時 */ <LI> background-color:#6633FF; /* 背景色 */ <LI> color:#FFFFFF; /* 文字顏色 */ <LI> } <LI> .pmVerticalRightOut .level_{display:none; /* 預設隱藏二級類別 */} <LI> <LI> .pmVerticalRightOut .level:hover .level_ { /* 滑鼠劃過時觸發顯示二級類別 */ <LI> display:block; /* 以區塊顯示 */ <LI> left:124px; /* 相對於一級類別所顯示的位置 */ <LI> width:120px; /* 寬度 */ <LI> height:auto; /* 高度 */ <LI> top:0px; /* 相對於一級類別所在位置的頂端 */ <LI> background-color:#EFEFEF; /* 定義背景色 */ <LI> position:absolute; /* 位置為絕對位置 */ <LI> } <LI> .pmVerticalRightOut .level:hover .level_ .level_title { <LI> /* 定义二级类别标题样式 */ <LI> font-weight:bold; /* 字体加粗 */ <LI> background-color:#A7ADFE; /* 背景色 */ <LI> color:white; /* 文字颜色 */ <LI> } <LI> .pmVerticalRightOut .level:hover .level_ a:hover { <LI> /* 定义二级类别链接显示样式 */ <LI> background-color:#F83658; /* 背景色 */ <LI> color:white; /* 文字颜色 */ <LI> } <LI> .pmVerticalRightOut .level:hover .level_ * { <LI> /* 定义所有二级类别通用属性 */ <LI> display:block; /* 以块显示 */ <LI> color:black; /* 文字颜色 */ <LI> padding:0px 2px; /* 内补丁间隔 */ <LI> }<LI> /* ------------------ end 針對 Opera, Firefox 的 CSS 彈出式選單 ----------------- --*/ <LI> <LI> /* ------------------- start 針對 IE 的 CSS 彈出式選單 -------------------- */ <LI> .levelIe{ /* 定義一級類別屬性 */ <LI> width:120px; /* 寬度 */ <LI> height:17; /* 高度 */ <LI> position:relative; /* 顯示位置為相對位置 */ <LI> display:block; /* 以區塊模式顯示 */ <LI> background-color:#D8D8D8; /* 背景色 */ <LI> padding:0px 2px; /* 文字內補丁間隔 */ <LI> margin:0px 0px 1px 0px; /* 選單外補丁間隔 */ <LI> } <LI> .levelIe .level_ { /* 滑鼠劃過時觸發顯示二級類別 */ <LI> display:block; /* 以區塊顯示 */ <LI> left:124px; /* 相對於一級類別所顯示的位置 */ <LI> width:120px; /* 寬度 */ <LI> height:auto; /* 高度 */ <LI> top:0px; /* 相對於一級類別所在位置的頂端 */ <LI> background-color:#EFEFEF; /* 定義背景色 */ <LI> position:absolute; /* 位置為絕對位置 */ <LI> } <LI> .levelIe .level_ .level_title { <LI> /* 定義二級類別標題樣式 */ <LI> font-weight:bold; /* 字體加粗 */ <LI> background-color:#A7ADFE; /* 背景色 */ <LI> color:white; /* 文字顏色 */ <LI> }<LI> .levelIe .level_ a:hover { <LI> /* 定義二級類別連結顯示樣式 */ <LI> background-color:#F83658; /* 背景色 */ <LI> color:white; /* 文字顏色 */ <LI> } <LI> .levelIe .level_ * { <LI> /* 定義所有二級類別一般屬性 */ <LI> display:block; /* 以區塊顯示 */ <LI> color:black; /* 文字顏色 */ <LI> padding:0px 2px; /* 內補丁間隔 */ <LI> } <LI> /* ------------------- end 針對 IE 的 CSS 彈出式選單 -------------------- */ <LI>/*]]>*/ </li> <li></style> </li> <li><script type="text/javascript"> </li> <li>//<![CDATA[ <LI>if (navigator.appName=="Microsoft Internet Explorer") { <LI> function fPmVerticalRightOut() { <LI> var getItem = document.getElementById("pmVerticalRightOut").getElementsByTagName("div"); <LI> for (var i=0; i<getItem.length; i ) { <LI> getItem[i].onmouseover=function() { <LI> if( this.className=="level"){ <LI> this.className="levelIe"; <LI> } <LI> } <LI> getItem[i].onmouseout=function() { <LI> if( this.className=="levelIe"){ <LI> this.className="level"; <LI> } <LI> }//css彈出式選單腳本作者:shawl.qiu <LI> } <LI> } <LI> window.onload=fPmVerticalRightOut; <LI>}<LI>//]]> </li> <li></script> </li> <li></head> </li> <li><body> </li> <li><p/><p/><p/><p/><p/> </li> <li><div class="pmVerticalRightOut" id="pmVerticalRightOut"> </li> <li> <div class="level"> </li> <li> <div class="levelTitle">level</div> </li> <li> <div class="level_"> </li> <li> <div class="level_title">level_ title</div> </li> <li> <a href="?cat=level&id=1">level_ 標題 1</a> </li> <li> <a href="?cat=level&id=2">level_ 標題 2</a> </li> <li> <a href="?cat=level&id=3">level_ 標題 3</a> </li> <li> <a href="?cat=level&id=4">level_ 標題 4</a> </li> <li> <a href="?cat=level&id=5">level_ 標題 5</a> </li> <li> </div> </li> <li> </div> </li> <li> <div class="level"> </li> <li> <div class="levelTitle">level 1</div> </li> <li> <div class="level_"> </li> <li> <div class="level_title">level_ title</div> </li> <li> <a href="?cat=level_1&id=1">level_ 標題 1</a> </li> <li> <a href="?cat=level_1&id=2">level_ 標題 2</a> </li> <li> <a href="?cat=level_1&id=3">level_ title 3</a> </li> <li><a href="?cat=level_1&id=4">level_標題4</a> </li> <li> <a href="?cat=level_1&id=5">level_ 標題 5</a> </li> <li> </div> </li> <li> </div> </li> <li> <div class="level"> </li> <li> <div class="levelTitle">level 2</div> </li> <li> <div class="level_"> </li> <li> <div class="level_title">level_ title</div> </li> <li> <a href="?cat=level_2&id=1">level_ 標題 1</a> </li> <li> <a href="?cat=level_2&id=2">level_ 標題 2</a> </li> <li> <a href="?cat=level_2&id=3">level_ 標題 3</a> </li> <li> <a href="?cat=level_2&id=4">level_ 標題 4</a> </li> <li> <a href="?cat=level_2&id=5">level_ 標題 5</a> </li> <li> </div> </li> <li> </div> </li> <li> <div class="level"> </li> <li> <div class="levelTitle">level 3</div> </li> <li> <div class="level_"> </li> <li> <div class="level_title">level_ title</div> </li> <li> <a href="?cat=level_3&id=1">level_ 標題 1</a> </li> <li> <a href="?cat=level_3&id=2">level_ 標題 2</a> </li> <li><a href="?cat=level_3&id=3">level_ title 3</a> </li> <li> <a href="?cat=level_3&id=4">level_ 標題 4</a> </li> <li> <a href="?cat=level_3&id=5">level_ 標題 5</a> </li> <li> </div> </li> <li> </div> </li> <li> <div class="level"> </li> <li> <div class="levelTitle">level 4</div> </li> <li> <div class="level_"> </li> <li> <div class="level_title">level_ title</div> </li> <li> <a href="?cat=level_4&id=1">level_ 標題 1</a> </li> <li> <a href="?cat=level_4&id=2">level_ 標題 2</a> </li> <li> <a href="?cat=level_4&id=3">level_ title 3</a> </li> <li> <a href="?cat=level_4&id=4">level_ 標題 4</a> </li> <li> <a href="?cat=level_4&id=5">level_ 標題 5</a> </li> <li> </div> </li> <li> </div> </li> <li></div> </li> <li></body> </li> <li></html> </li> </ol> <br>#2.編寫了橫底部彈出的 CSS 選單。 <br><br>2.1 真正的基於 Opera、Firefox 純 CSS 彈出式選單<br><ol class="linenum"> <strong>linenum</strong> <li><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" <LI>" <A href="http://www.w3.org/TR/html4/loose.dtd" target=_blank>http://www.w3.org/TR/html4/loose.dtd</A>"> </li> <li><html> </li> <li><head> </li> <li><meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </li> <li><title>Untitled Document</title> </li> <li><style type="text/css"> </li> <li>/*<![CDATA[*/ /* shawl.qiu pure css popup menu demo */ <LI> body{ margin:0px auto; width:768px; /* 定義頁以中顯示,*/} <LI> *{text-decoration:none!important; /* 定義所有連結不顯示底線 */} <LI> .pmHorizontalBottomOut{background-color:#fff!important; /* 定義主選單域背景色 */} <LI> .pmHorizontalBottomOut .level{ /* 定義一級類別屬性 */ <LI> width:120px; /* 寬度 */ <LI> height:17; /* 高度 */ <LI> position:relative; /* 顯示位置為相對位置 */ <LI> display:block; /* 以區塊模式顯示 */ <LI> background-color:#D8D8D8; /* 背景色 */ <LI> padding:0px 2px; /* 文字內補丁間隔 */ <LI> margin:0px 1px 0px 0px; /* 選單外補丁間隔 */ <LI> float:left; <LI> } <LI> .pmHorizontalBottomOut .level:hover { /* 當滑鼠劃過一級選單 */ <LI> background-color:#6633FF; /* 背景色 */ <LI> color:#FFFFFF; /* 文字顏色 */ <LI> } <LI> .pmHorizontalBottomOut .level_{display:none; /* 預設隱藏二級類別 */}<LI> <LI> .pmHorizontalBottomOut .level:hover .level_ { /* 滑鼠劃過時觸發顯示二級類別 */ <LI> display:block; /* 以區塊顯示 */ <LI> width:124px; /* 寬度 */ <LI> height:auto; /* 高度 */ <LI> margin:0px -2px 0px -2px; /* 外補丁 */ <LI> background-color:#EFEFEF; /* 定義背景色 */ <LI> position:absolute; /* 位置為絕對位置 */ <LI> } <LI> .pmHorizontalBottomOut .level:hover .level_ .level_title { <LI> /* 定義二級類別標題樣式 */ <LI> font-weight:bold; /* 字體加粗 */ <LI> background-color:#A7ADFE; /* 背景色 */ <LI> color:white; /* 文字顏色 */ <LI> } <LI> .pmHorizontalBottomOut .level:hover .level_ a:hover { <LI> /* 定義二級類別連結顯示樣式 */ <LI> background-color:#F83658; /* 背景色 */ <LI> color:white; /* 文字顏色 */ <LI> } <LI> .pmHorizontalBottomOut .level_ * { <LI> /* 定義所有二級類別一般屬性 */ <LI> display:block; /* 以區塊顯示 */ <LI> color:black; /* 文字顏色 */ <LI> padding:0px 2px; /* 內補丁間隔 */ <LI> }<LI>/*]]>*/ </li> <li></style> </li> <li></head> </li> <li><body> </li> <li><p/><p/><p/><p/><p/> </li> <li><div class="pmHorizontalBottomOut" id="pmHorizontalBottomOut"> </li> <li> <div class="level"> </li> <li> <div class="levelTitle">level</div> </li> <li> <div class="level_"> </li> <li> <div class="level_title">level_ title</div> </li> <li> <a href="?cat=level&id=1">level_ 標題 1</a> </li> <li> <a href="?cat=level&id=2">level_ 標題 2</a> </li> <li> <a href="?cat=level&id=3">level_ 標題 3</a> </li> <li> <a href="?cat=level&id=4">level_ 標題 4</a> </li> <li> <a href="?cat=level&id=5">level_ 標題 5</a> </li> <li> </div> </li> <li> </div> </li> <li> <div class="level"> </li> <li> <div class="levelTitle">level 1</div> </li> <li> <div class="level_"> </li> <li> <div class="level_title">level_ title</div> </li> <li> <a href="?cat=level_1&id=1">level_ 標題 1</a> </li> <li> <a href="?cat=level_1&id=2">level_ 標題 2</a> </li> <li> <a href="?cat=level_1&id=3">level_ title 3</a> </li> <li><a href="?cat=level_1&id=4">level_標題4</a> </li> <li> <a href="?cat=level_1&id=5">level_ 標題 5</a> </li> <li> </div> </li> <li> </div> </li> <li> <div class="level"> </li> <li> <div class="levelTitle">level 2</div> </li> <li> <div class="level_"> </li> <li> <div class="level_title">level_ title</div> </li> <li> <a href="?cat=level_2&id=1">level_ 標題 1</a> </li> <li> <a href="?cat=level_2&id=2">level_ 標題 2</a> </li> <li> <a href="?cat=level_2&id=3">level_ 標題 3</a> </li> <li> <a href="?cat=level_2&id=4">level_ 標題 4</a> </li> <li> <a href="?cat=level_2&id=5">level_ 標題 5</a> </li> <li> </div> </li> <li> </div> </li> <li> <div class="level"> </li> <li> <div class="levelTitle">level 3</div> </li> <li> <div class="level_"> </li> <li> <div class="level_title">level_ title</div> </li> <li> <a href="?cat=level_3&id=1">level_ 標題 1</a> </li> <li> <a href="?cat=level_3&id=2">level_ 標題 2</a> </li> <li><a href="?cat=level_3&id=3">level_ title 3</a> </li> <li> <a href="?cat=level_3&id=4">level_ 標題 4</a> </li> <li> <a href="?cat=level_3&id=5">level_ 標題 5</a> </li> <li> </div> </li> <li> </div> </li> <li> <div class="level"> </li> <li> <div class="levelTitle">level 4</div> </li> <li> <div class="level_"> </li> <li> <div class="level_title">level_ title</div> </li> <li> <a href="?cat=level_4&id=1">level_ 標題 1</a> </li> <li> <a href="?cat=level_4&id=2">level_ 標題 2</a> </li> <li> <a href="?cat=level_4&id=3">level_ title 3</a> </li> <li> <a href="?cat=level_4&id=4">level_ 標題 4</a> </li> <li> <a href="?cat=level_4&id=5">level_ 標題 5</a> </li> <li> </div> </li> <li> </div> </li> <li></div> </li> <li></body> </li> <li></html> </li> </ol> <br>2.2 相容 IE、Opera、Firefox 的 CSS 彈出式選單(腳本實作)<br><ol class="linenum"> <strong>linenum</strong> <li><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" <LI>" <A href="http://www.w3.org/TR/html4/loose.dtd" target=_blank>http://www.w3.org/TR/html4/loose.dtd</A>"> </li> <li><html> </li> <li><head> </li> <li><meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </li> <li><title>Untitled Document</title> </li> <li><style type="text/css"> </li> <li>/*<![CDATA[*/ /* shawl.qiu pure css popup menu demo */ <LI> body{ margin:0px auto; width:768px; /* 定義頁以中顯示,*/} <LI> *{text-decoration:none!important; /* 定義所有連結不顯示底線 */} <LI> /* ------------------ start 針對 Opera, Firefox 的 CSS 彈出式選單 ----------------- --*/ <LI> .pmHorizontalBottomOut{background-color:#fff!important; /* 定義主選單域背景色 */} <LI> .pmHorizontalBottomOut .level{ /* 定義一級類別屬性 */ <LI> width:120px; /* 寬度 */ <LI> height:17; /* 高度 */ <LI> position:relative; /* 顯示位置為相對位置 */ <LI> display:block; /* 以區塊模式顯示 */ <LI> background-color:#D8D8D8; /* 背景色 */ <LI> padding:0px 2px; /* 文字內補丁間隔 */ <LI> margin:0px 1px 0px 0px; /* 選單外補丁間隔 */ <LI> float:left; <LI> } <LI> .pmHorizontalBottomOut .level:hover { /* 當滑鼠劃過一級選單 */ <LI> background-color:#6633FF; /* 背景色 */ <LI> color:#FFFFFF; /* 文字顏色 */ <LI> } <LI> .pmHorizontalBottomOut .level_{display:none; /* 預設隱藏二級類別 */}<LI> <LI> .pmHorizontalBottomOut .level:hover .level_ { /* 滑鼠劃過時觸發顯示二級類別 */ <LI> display:block; /* 以區塊顯示 */ <LI> width:124px; /* 寬度 */ <LI> height:auto; /* 高度 */ <LI> margin:0px -2px 0px -2px; /* 外補丁 */ <LI> background-color:#EFEFEF; /* 定義背景色 */ <LI> position:absolute; /* 位置為絕對位置 */ <LI> } <LI> .pmHorizontalBottomOut .level:hover .level_ .level_title { <LI> /* 定義二級類別標題樣式 */ <LI> font-weight:bold; /* 字體加粗 */ <LI> background-color:#A7ADFE; /* 背景色 */ <LI> color:white; /* 文字顏色 */ <LI> } <LI> .pmHorizontalBottomOut .level:hover .level_ a:hover { <LI> /* 定義二級類別連結顯示樣式 */ <LI> background-color:#F83658; /* 背景色 */ <LI> color:white; /* 文字顏色 */ <LI> } <LI> .pmHorizontalBottomOut .level_ * { <LI> /* 定義所有二級類別一般屬性 */ <LI> display:block; /* 以區塊顯示 */ <LI> color:black; /* 文字顏色 */ <LI> padding:0px 2px; /* 內補丁間隔 */ <LI> }<LI> /* ------------------ end 針對 Opera, Firefox 的 CSS 彈出式選單 ----------------- --*/ <LI> <LI> /* ------------------- start 針對 IE 的 CSS 彈出式選單 -------------------- */ <LI> .levelIe{ /* 定義一級類別屬性 */ <LI> width:120px; /* 寬度 */ <LI> height:17; /* 高度 */ <LI> position:relative; /* 顯示位置為相對位置 */ <LI> display:block; /* 以區塊模式顯示 */ <LI> background-color:#D8D8D8; /* 背景色 */ <LI> padding:0px 2px; /* 文字內補丁間隔 */ <LI> margin:0px 1px 0px 0px; /* 選單外補丁間隔 */ <LI> float:left; <LI> } <LI> .levelIe { /* 當滑鼠劃過一級選單時 */ <LI> background-color:#6633FF; /* 背景色 */ <LI> color:#FFFFFF; /* 文字顏色 */ <LI> } <LI> .levelIe .level_ { /* 滑鼠劃過時觸發顯示二級類別 */ <LI> display:block; /* 以區塊顯示 */ <LI> width:124px; /* 寬度 */ <LI> height:auto; /* 高度 */ <LI> margin:0px -2px 0px -2px; /* 外補丁 */ <LI> background-color:#EFEFEF; /* 定義背景色 */ <LI> position:absolute; /* 位置為絕對位置 */ <LI> } <LI> .levelIe .level_ .level_title { <LI> /* 定義二級類別標題樣式 */ <LI> font-weight:bold; /* 字體加粗 */ <LI> background-color:#A7ADFE; /* 背景色 */ <LI> color:white; /* 文字顏色 */ <LI> }<LI> .levelIe .level_ a:hover { <LI> /* 定義二級類別連結顯示樣式 */ <LI> background-color:#F83658; /* 背景色 */ <LI> color:white; /* 文字顏色 */ <LI> } <LI> .levelIe .level_ * { <LI> /* 定義所有二級類別一般屬性 */ <LI> display:block; /* 以區塊顯示 */ <LI> color:black; /* 文字顏色 */ <LI> padding:0px 2px; /* 內補丁間隔 */ <LI> } <LI> /* ------------------- end 針對 IE 的 CSS 彈出式選單 -------------------- */ <LI>/*]]>*/ </li> <li></style> </li> <li><script type="text/javascript"> </li> <li>//<![CDATA[ <LI>if (navigator.appName=="Microsoft Internet Explorer") { <LI> function fPmHorizontalBottomOut() { <LI> var getItem = document.getElementById("pmHorizontalBottomOut").getElementsByTagName("div"); <LI> for (var i=0; i<getItem.length; i ) { <LI> getItem[i].onmouseover=function() { <LI> if( this.className=="level"){ <LI> this.className="levelIe"; <LI> } <LI> } <LI> getItem[i].onmouseout=function() { <LI> if( this.className=="levelIe"){ <LI> this.className="level"; <LI> } <LI> }//css彈出式選單腳本作者:shawl.qiu <LI> } <LI> } <LI> window.onload=fPmHorizontalBottomOut; <LI>}<LI>//]]> </li> <li></script> </li> <li></head> </li> <li><body> </li> <li><p/><p/><p/><p/><p/> </li> <li><div class="pmHorizontalBottomOut" id="pmHorizontalBottomOut"> </li> <li> <div class="level"> </li> <li> <div class="levelTitle">level</div> </li> <li> <div class="level_"> </li> <li> <div class="level_title">level_ title</div> </li> <li> <a href="?cat=level&id=1">level_ 標題 1</a> </li> <li> <a href="?cat=level&id=2">level_ 標題 2</a> </li> <li> <a href="?cat=level&id=3">level_ 標題 3</a> </li> <li> <a href="?cat=level&id=4">level_ 標題 4</a> </li> <li> <a href="?cat=level&id=5">level_ 標題 5</a> </li> <li> </div> </li> <li> </div> </li> <li> <div class="level"> </li> <li> <div class="levelTitle">level 1</div> </li> <li> <div class="level_"> </li> <li> <div class="level_title">level_ title</div> </li> <li> <a href="?cat=level_1&id=1">level_ 標題 1</a> </li> <li> <a href="?cat=level_1&id=2">level_ 標題 2</a> </li> <li> <a href="?cat=level_1&id=3">level_ title 3</a> </li> <li><a href="?cat=level_1&id=4">level_標題4</a> </li> <li> <a href="?cat=level_1&id=5">level_ 標題 5</a> </li> <li> </div> </li> <li> </div> </li> <li> <div class="level"> </li> <li> <div class="levelTitle">level 2</div> </li> <li> <div class="level_"> </li> <li> <div class="level_title">level_ title</div> </li> <li> <a href="?cat=level_2&id=1">level_ 標題 1</a> </li> <li> <a href="?cat=level_2&id=2">level_ 標題 2</a> </li> <li> <a href="?cat=level_2&id=3">level_ 標題 3</a> </li> <li> <a href="?cat=level_2&id=4">level_ 標題 4</a> </li> <li> <a href="?cat=level_2&id=5">level_ 標題 5</a> </li> <li> </div> </li> <li> </div> </li> <li> <div class="level"> </li> <li> <div class="levelTitle">level 3</div> </li> <li> <div class="level_"> </li> <li> <div class="level_title">level_ title</div> </li> <li> <a href="?cat=level_3&id=1">level_ 標題 1</a> </li> <li> <a href="?cat=level_3&id=2">level_ 標題 2</a> </li> <li><a href="?cat=level_3&id=3">level_ title 3</a> </li> <li> <a href="?cat=level_3&id=4">level_ 標題 4</a> </li> <li> <a href="?cat=level_3&id=5">level_ 標題 5</a> </li> <li> </div> </li> <li> </div> </li> <li> <div class="level"> </li> <li> <div class="levelTitle">level 4</div> </li> <li> <div class="level_"> </li> <li> <div class="level_title">level_ title</div> </li> <li> <a href="?cat=level_4&id=1">level_ 標題 1</a> </li> <li> <a href="?cat=level_4&id=2">level_ 標題 2</a> </li> <li> <a href="?cat=level_4&id=3">level_ title 3</a> </li> <li> <a href="?cat=level_4&id=4">level_ 標題 4</a> </li> <li> <a href="?cat=level_4&id=5">level_ 標題 5</a> </li> <li> </div> </li> <li> </div> </li> <li></div> </li> <li></body> </li> <li></html> </li> </ol> <br><br>3.結論<br>修改以上範例可以看出,如果已經編寫出了一個可用的CSS彈出選單範例,那就要編寫出彈出位置在其他位置的CSS彈出選單的話,只需小小一下就OK了。 <br><br>4。預覽<br><br>4.1 1.2 相容 IE、Opera、Firefox 的 CSS 彈出式選單(腳本實作)的預覽<br> <dl> <dd> <style type="text/css"> /*<![CDATA[*/ /* shawl.qiu 純css彈出式選單示範 */ 正文{ 邊距:0px 自動;寬度:768px; /*定義頁面居中顯示,*/} *{文字裝飾:無!重要; /* 定義所有連結不顯示底線 */}/* ------------------- start 針對Opera, Firefox 的CSS 彈出式選單-------------------* / .pmVerticalRightOut{background-color:#fff!important; /* 定義主選單域背景色 */} .pmVerticalRightOut .level{ /* 定義一級類別屬性 */ width:120px; /* 寬度 */ height:17; /* 高度 */ position:relative; /* 顯示位置為相對位置 */ display:block; /* 以區塊模式顯示 */ background-color:#D8D8D8; /* 背景色 */ padding:0px 2px; /* 文字內補丁間隔 */ margin:0px 0px 1px 0px; /* 選單外補丁間隔 */ } .pmVerticalRightOut .level:hover { /* 當滑鼠劃過一級選單 */ background-color:#6633FF; /* 背景色 */ color:#FFFFFF; /* 文字顏色 */ } .pmVerticalRightOut .level_{display:none; /* 預設隱藏二級類別 */} .pmVerticalRightOut .level:hover .level_ { /* 滑鼠劃過時觸發顯示二級類別 */ display:block; /* 以區塊顯示 */ left:124px; /* 相對於一級類別顯示的位置 */ width:120px; /* 寬度 */ height:auto; /* 高度 */ top:0px; /* 相對於一級類別所在位置的頂端 */ background-color:#EFEFEF; /* 定義背景色 */ position:absolute; /* 位置為絕對位置 */ } .pmVerticalRightOut .level:hover .level_ .level_title { /* 定義二級類別標題樣式 */ font-weight:bold; /* 字型加粗 */ background-color:#A7ADFE; /* 背景色 */ color:white; /* 文字顏色 */ } .pmVerticalRightOut .level:hover .level_ a:hover { /* 定義二級類別連結顯示樣式 */ background-color:#F83658; /* 背景色 */ color:white; /* 文字顏色 */ } .pmVerticalRightOut .level:hover .level_ * { /* 定義所有二級類別通用屬性 */ display:block; /* 以區塊顯示 */ color:black; /* 文字顏色 */ padding:0px 2px; /* 內補丁間隔 */ } /* ------------------- end 針對Opera, Firefox 的CSS 彈出式選單-------------------* / /* ------------------- start 針對 IE 的 CSS 彈出式選單 -------------------*/ .levelIe{ /* 定義一級類別屬性 */ width:120px; /* 寬度 */ height:17; /* 高度 */ position:relative; /* 顯示位置為相對位置 */ display:block; /* 以區塊模式顯示 */ background-color:#D8D8D8; /* 背景色 */ padding:0px 2px; /* 文字內補丁間隔 */ margin:0px 0px 1px 0px; /* 選單外補丁間隔 */ } .levelIe .level_ { /* 滑鼠劃過時觸發顯示二級類別 */ display:block; /* 以區塊顯示 */ left:124px; /* 相對於一級類別顯示的位置 */ width:120px; /* 寬度 */ height:auto; /* 高度 */ top:0px; /* 相對於一級類別所在位置的頂端 */ background-color:#EFEFEF; /* 定義背景色 */ position:absolute; /* 位置為絕對位置 */ } .levelIe .level_ .level_title { /* 定義二級類別標題樣式 */ font-weight:bold; /* 字型加粗 */ background-color:#A7ADFE; /* 背景色 */ color:white; /* 文字顏色 */ }.levelIe .level_ a:hover { /* 定義二級類別連結顯示樣式 */ background-color:#F83658; /* 背景色 */ color:white; /* 文字顏色 */ } .levelIe .level_ * { /* 定義所有二級類別通用屬性 */ display:block; /* 以區塊顯示 */ color:black; /* 文字顏色 */ padding:0px 2px; /* 內補丁間隔 */ } /* ------------------- end 針對 IE 的 CSS 彈出式選單 -------------------*/ /*]]>*/</style> <script type="text/javascript"> //<![CDATA[ if (navigator.appName=="Microsoft Internet Explorer") { function fPmVerticalRightOut() { var getItem = document.getElementById("pmVerticalRightOut").getElementsByTagName("div"); for (var i=0; i<getItem.length; i ) { getItem[i].onmouseover=function() { if( this.className=="level"){ this.className="levelIe"; } } getItem[i].onmouseout=function() { if( this.className=="levelIe"){ this.className="level"; } }//css popup menu script by shawl.qiu } } function fPmHorizontalBottomOut() { var getItem = document.getElementById("pmHorizontalBottomOut").getElementsByTagName("div"); for (var i=0; i<getItem.length; i ) { getItem[i].onmouseover=function() { if( this.className=="level"){ this.className="levelIe"; } } getItem[i].onmouseout=function() { if( this.className=="levelIe"){ this.className="level"; } }//css popup menu script by shawl.qiu } } //window.onload=fPmHorizontalBottomOut; window.onload=fPmVerticalRightOut,fPmHorizontalBottomOut; } //]]> </script> </dd> </dl> </dd> </dl> </div>