{ 在先前的HTML裡,元素的位置只能依序排列,我們很難精確地定位與控制網頁中的一些元素。 CSS2?CascadingStyle Shett Leveyfy5fy?屬性出現並得到瀏覽器的廣泛支援之後,我們不僅可以靜態地實現以上目的,而且可以根據滑鼠、鍵盤、時間等預定義好的外在事件動態地改變佈局。時下非常流行的網頁中「活動的層」便是它的一種形象的運用,我們這裡要講的是如何運用這些屬性結合一些DHTML對像在網頁中實現類似Windows窗口的下拉菜單(如圖所示)。請看以下程式碼及詳細說明。
<?-- 以下部分應插在代碼的<head>之後-->
<style><?--
/? 這是一些CSS樣式。其中″btnTD″是按鈕在被按下之前「凸起」的樣式類:邊框被設定為寬度為1個像素的實線,其中左邊框和上邊框顏色為淺色(這裡為白色),右下邊框為深色(深灰色),如果背景為灰色的HTML元素(如單元格)使用這個樣式的話,那就非常像一個“凸出”的按鈕;“btnDTD”是按鈕被按下時“凹下”的樣式。 ?/
. btnTD ? border-left? 1 solid #ffffff? border-right? 1 solid #808080?
border-top? 1 solid #ffffff? border-bottom? 1 solid #808080? ?
. btnDTD ? border-left? 1 solid #808080? border-right? 1 solid #ffffff?
border-top? 1 solid #808080? border-bottom? 1 solid #ffffff? ?
td ? font-family? 宋體? font-size ? 9pt ?
--></style>
<script language=″JavaScript″><?--
//判斷哪個按鈕被按下的全局變量
var intBlnClk=0?
//鼠標經過、離開、點擊更改單元格CSS樣式的函數
function mOvreuff rree?
tive?strColssus「」」sssh? strCursor?
argv=mOvrOut. arguments?argc=argv. length?
/?預設情況下不將目前物件置為「啟動」?/
blnActive=?ary>5 eval?argv[1]??false?
/?預設滑鼠經過目前物件的樣式為「凸出」2222222222222
argv[2]?=′′?﹖ argv[2]?′btnTD′?
/?默認鼠標點擊的時候當前對象為“凹下的按鈕形”?/
strClassD=?argc>3 && argv[3]?=′′?﹖ arg[3]?′btnDTD′?
/?將目前物件啟動時候的前景色為白色、背景色為藍色、滑鼠樣式為手形?ffff?
trBgColor=′#000080′?strCursf2==」Csr2==]C「 ′hand′?
/?IE4及其更高版本才支持這些JavaScript對CSS 樣式的動態改變?
. all??
//將目前物件的滑鼠樣式置為參數傳遞值
objSrc. style. cursor=strCursor?
//如果是鼠標進入當前對象範圍
if??objSrc. contains?event. fromElement???
/?設定為活動樣式?/
if?blnArtie? ? ? bgColor?objSrc. style. color=strColor? ?
/?當前對像不需要置為活動樣式的時候,如果本來的
樣式是“凸出的按鈕eee ,反之亦然
className=?intBlnClk?=0?0?0?0 strClassD?strClass? ?
//滑鼠離開目前物件區域eree
? contains?event. toElement???
//將這些樣式置為預設值
objSrc. bgColor=′′?objSrc. style. color=′′?objSrc. className=′′? ?
??
/? 顯示/隱藏層的通用函數。以objNS、objIE、strStu作為參數,其中objN5%層」對象,strStu為層的狀態。因為篇幅所限,請查看本文尾部說明。 ?/
function shoHidLayers????
/? 調用上面傳遞的函數,顯示隱藏參數的層,這樣是這樣傳遞參數的層,這樣是這樣傳遞代碼。這裡不給出詳細函數。 ?/
function showLayer?intCurrent???
//--></script></head>
<body onMouseDown=″if?window.event.srcElement.style.color==′′? showLayer?1?′hide′ ?″>
<?-- 以上body部分的作用是當滑鼠沒有按下任何按鈕的時候隱藏所有應該隱藏的「選單」。以下是兩個用CSS佈局定義的層,名為“menu”的層的初始狀態為:在屏幕上的絕對位置為(12?12),可視,層z-index屬性為100;“menu1”為不可視。 -->
<div id=″menu″ style=″position?absolute?visibility? visible?left?12px?top?12px? z-index? 100″><table border=″1″ cellspacing=″0″ cellpadding= ″2″ bgcolor=″#c0c0c0″ bordercolor=″#c0c0c0″>
<tr><td onMouseOver=″mOvrOut?this?″ onMouseOut=″mOvrOut?this?″ onClick=″mOvrOut?this?false?′btnDTD′? ?showLayer?1?″>天極網</td></tr>
</table></div>
<div id=″menu1″ style=″position?absolute?visibility? hidden?left?11px?top?34px ? z-index? 1″><table border=″0″ cellpadding=″2″ cellspacing=″0″ bgcolor=″#c0c0c0″ class=″btnTD″>
<tr><td onMouseOver=″mOvrOut?this?true ?″ onMouseOut=″mOvrOut?this?″ width=″100%″nowrap onClick=″window.location=′http?//www.pcwclub.com/′?showLayer?1?′hide′?″>電腦報讀者俱樂部</td></tr>
</table></div>
因為篇幅所限,某些函數不能給予詳細說明,若 titttt、tt、tt、ttt、tt、ttt、tt、ttt、tttttttt、ttttt4tttttt、ttttttti中給予詳細說明。 t. topcool. net/documents/menu. html。