天天爽夜夜爽人人爽88-蜜桃av噜噜一区二区三区麻豆-久久夜色撩人精品国产av-免费毛片观看-禁断介护av-蜜桃香蕉视频-成人亚洲欧美一区二区三区-美日毛片-午夜影院污-国产激情福利-超碰999-亚洲 自拍 欧美 小说 综合-青青草视频偷拍-亚洲人成电影免费观看在线看-www夜片内射视频在观看视频

切換城市 [ 北京 武漢 ]24小時聯(lián)系電話:
24小時聯(lián)系電話: 15201609116
切換城市 [ 北京 武漢 ]

有事點這里 有事點這里  有事點這里 有事點這里

新聞資訊NEWS

網(wǎng)頁菜單詳解:基本原理日期:2012/12/5 11:53:53  

  在講解之前,有一點需要說明的是:筆者在后面講解的代碼都基于當前的主流瀏覽器Microsoft Internet Explorer(即我們通常所說的IE)下的。筆者進行調(diào)試的瀏覽器是IE 5.01。另外,這樣一個菜單體現(xiàn)的是HTML/CSS/javascript的綜合應用,這里并不對一些細節(jié)進行詳細的講解,所以你至少應該有一點這方面的基礎。


  基本原理

  其實,這個菜單實現(xiàn)的原理簡單的說就是:設置頁面元素的CSS屬性,對其進行定位并設置其是否可見,然后通過激發(fā)一定的事件,用javascript來動態(tài)的改變這些屬性。

  看下面幾個CSS屬性:

  position:定位類型,取值static/absolute/relative,其代表的含義簡單的說即無定位/絕對定位/相對定位;
  left:距離左側(cè)的位置(具體的參照物與position的設置有關(guān)),單位為px或%;
  top:距離頂部的位置(具體的參照物與position的設置有關(guān)),單位為px或%。
  display:頁面元素的顯示狀態(tài),如取值block表示做為塊狀元素顯示,none則為不顯示,還有其他一些取值(如inline等)這里就不做詳解。

  比如上例中的“div id=myMenu style="position:absolute;left:-10px;top:18px;display:none...”就是使用了這幾個屬性。

  下面我們來看看如何用javascript來控制頁面元素的CSS屬性。

  對HTML有一定了解的朋友一定清楚,幾乎所有的標記都有一個style屬性,通過設置這個屬性來設置該標記的CSS屬性(即CSS的內(nèi)聯(lián)用法)。在javascript中,每一個標記都被視為Document對象的一個子對象,而該標記的每一個HTML屬性也都是這個對象的屬性或子對象,style就是其中一個,通過用javascript控制style的屬性,就達到了動態(tài)改變頁面元素CSS屬性的目的。如上例中的“onmouseover="myMenu.style.display='block'"”就是一個很普通的用法,其中myMenu即我們所看到的“菜單”的ID,它原來的display為none,即不顯示,當鼠標移上去時,變?yōu)閎lock,即塊狀顯示。

  另外要提的是:前面只說了如何實現(xiàn)定位、如何動態(tài)控制,那么定位的、控制的是什么元素呢?原則上來講,大部分塊狀元素(如div、table)都可以,而在IE中,div標記(注意,在一些非IE瀏覽器中,并不支持div標記)因其使用的靈活性和方便性而做為我們的首選。上例使用的就是div標記。

  好啦,基本的過程,上面大致已經(jīng)說完了,在下一章,我們將看到使用上面提到的技術(shù)來實現(xiàn)一個簡單的菜單。  

 

模擬網(wǎng)頁下拉菜單中有幾個比較關(guān)鍵的CSS屬性:position、left、top、display,同時,他們也是style對象的屬性。今天我們就用這幾個基本屬性來實現(xiàn)一個簡單的網(wǎng)頁菜單。

  首先請大家看筆者已經(jīng)做好的一個實例,然后我們對這個例子進行詳細代碼講解。

  為大家閱讀方便,這里采用在代碼中加注釋的方式,紅色部分為注釋。


代碼如下:

 

------------------------------------------------------<html><head><title>菜單實例</title><style type=text/css>td,div  { font: normal 12px 宋體; }</style></head><body style="margin-left:12px;margin-top:16px;"><table cellpadding=0 cellspacing=0 width=90% height=20 bgcolor=#CCCCCC>  <tr>    <td width=10> </td>    <td width=80 align=center onmouseover="menuShow(menu01)"    onmouseout="menuHide(menu01)">菜單實例</td>    <!--      上兩行為菜單中顯示的文字,注意這里面的事件觸發(fā):      onmouseover="menuShow(menu01)" 鼠標經(jīng)過時顯示菜單;      onmouseout="menuHide(menu01)" 鼠標移走時隱藏菜單。      參數(shù)menu01即要顯示的菜單的id,將在接下來的代碼中看到。      menuShow與menuHide分別為顯示、隱藏菜單方法,將在后面定義。    -->    <td> </td>  </tr></table><div style="position:absolute;top:36px;left:20px;display:none;width:80px;height:100px;background-color:#DDDDDD;" id=menu01onmouseover="menuShow(this)" onmouseout="menuHide(this)"><!--  以上三行,定義了菜單的一些屬性,注意“id=menu01”,前面提到過。  position、top、left、display四個CSS屬性即上一章講過的;  width、height、background-color分別為寬度、高度、背景色。  這里再一次出現(xiàn)onmouseover="menuShow(this)" onmouseout="menuHide(this)",  就是說當鼠標從菜單按鈕上移開,如果是移到了菜單上,菜單仍然顯示。  注意這里參數(shù)是this而不是menu01,this即對象本身,在這里就是指menu01,所以結(jié)果相同。  在這里筆者有意使用this,只是想告訴大家一個技巧,這在很多時候非常方便。-->  <br>   菜單內(nèi)容</div><script language=Javascript>function menuShow(menu) //定義顯示菜單的方法,參數(shù)menu即菜單的id。{  menu.style.display='block';  //注意這里如何用javascript改變style對象的屬性來達到改變CSS屬性的目的。}function menuHide(menu) //定義隱藏菜單的方法,參數(shù)menu即菜單的id。{  menu.style.display='none';  //同上}</script></body></html>------------------------------------------------------  這樣,一個簡單的菜單就實現(xiàn)了,只要你略有一些相關(guān)的基礎知識,反復體會一下我加的注釋,就應該可以理解了,是不是并不難?

  這個菜單現(xiàn)在看上去還有點簡陋,下次我們將對這個菜單進行進一步的修飾。

 


美化主要表現(xiàn)在鼠標放到菜單上后(即鼠標懸停)的效果,這里首先介紹幾個經(jīng)常用到的CSS屬性:

  background-color:背景色,其值為一個顏色值,如“#FF0000”、“red”。

  border:邊框樣式,一個形如“寬度 樣式 顏色”的字符串,如“1px solid red”,即1px的紅色實線邊框。

  cursor:鼠標指針樣式,取值為表示鼠標指針樣式的字符串,如“hand”、“help”,即小手、幫助狀態(tài)。

  以上只是簡單的介紹了幾個在此類菜單中非常常見的CSS屬性,這里也并未做很詳盡的解釋(畢竟這些并不是我們要講解的重點),欲了解更多可參閱相關(guān)資料。筆者在這里想說的是:掌握更多的CSS屬性會對你有所幫助。

  前面說了,美化主要表現(xiàn)在鼠標放到菜單上后的效果,那么如何用javascript來控制樣式的變化呢?或者你會想到前面講過的style對象,的確,用style可以達到目的,但是,很多時候,需要改變很多個CSS屬性,用style就顯得有些麻煩。我們再來介紹一個新的屬性:className。

  className屬性對應的就是CSS的class,也即所謂的偽類,比如在某個標記中設置class=myName,那么這時該元素的className屬性就是myName。

  來看下面這個例子:

--------------------------------------------<span  onmouseover="this.className='style_over'"onmouseout="this.className='style_normal'">鼠標移上來,通過className屬性改變這段文字的class,使文字顏色變成紅色;移走,又恢復原來的顏色。</span>----------------------------------------------
  

  我們看到,在處理相對復雜的樣式變化的情況下,用className就方便得多了,至于樣式如何變化,就變成如何定義class的問題了。

  講到這里,我想有一定CSS基礎的朋友應該已經(jīng)清楚如何來修飾這個菜單了,即便你對CSS了解的還不多,前面已經(jīng)介紹了幾個較常用的屬性。所以,這里就不再多講了
 

  通過前三篇文章的講解,現(xiàn)在我們已經(jīng)可以實現(xiàn)一個基本的菜單了。這一章,我們來討論一下定位的問題。

  在前幾章講的例子中,定位都是相對于整個網(wǎng)頁的左上角。在有一些時候,我們可能需要它相對于網(wǎng)頁中某個元素定位,這樣做在某些時候是非常有必要的,比如不會出現(xiàn)那種因窗口大小的改變而致使菜單與網(wǎng)頁中的一些元素的相對位置發(fā)生變化。在第一章的最初,筆者所給的例子中就是這樣做的。

  在那里我們很方便把就把這個菜單插入到了網(wǎng)頁中,而菜單不會相對菜單按鈕的位置發(fā)生變化。下面我們就看看如何來實現(xiàn)。

  在第一章,我們講過position,當它取值absolute的時候,即絕對定位。既然是定位,就要有參照物。一般來講,這個定位的參照物是body(即整個網(wǎng)頁)的左上角,但如果其父級元素中有設置了position:absolute的元素,那么它的參照物就是該元素。知道了這樣一個特性,我們就可以很容易的來實現(xiàn)了。

  另外,有一點在這里必須要著重說明一下,前面同時也講過,當position的值為relative時,就是相對定位,為什么不用它來實現(xiàn)呢?我們必須要正確理解這里所謂的相對定位:它是指相對于原來在HTML中的位置所發(fā)生的偏移,而它仍占據(jù)原來在HTML中所占據(jù)的位置。而我們現(xiàn)在的菜單需要“懸浮”在網(wǎng)頁元素之上,而這只有當position設為absolute時才可以做到。

  通過上面的講述,我們應該可以大致的了解其實現(xiàn)的原理了。下面就看看剛才在上面看到的那個菜單的代碼(注意里面的注釋會幫你加深理解)。

-------------------------------------------------------------------------------
<div onmouseover="myMenu.style.display='block'"onmouseout="myMenu.style.display='none'">                   Link 1<br>       Link 2<br>       Link 3<br>              Link N<br>        菜單實例-------------------------------------------

  請仔細理解上面的代碼,相信大家對用CSS進行絕對定位會有一個更深層次的認識!

  這里說一句題外話:這種定位可以用Dreamweaver來實現(xiàn)(這對于對JS不是很熟的朋友來講的確很方便),而事實上這樣做生成的代碼的原理與上面講的相同的。把上面講的原理弄清楚了,使用起來會更靈活。

咨詢電話:15201609116

地 址:北京市海淀區(qū)建材城中路12號院17號樓1層119室
武漢分公司地址:湖北省武漢市洪山區(qū)南國雄楚廣場A4棟2011室
鄭州分公司地址:河南鄭州金水區(qū)東風路科技市場對面米蘭陽光6號樓917室
郵 箱:haidanet@163.com
24小時聯(lián)系電話: 15201609116 13651084380

主站蜘蛛池模板: 久久99精品久久久久久9 | 欧美一夜爽爽爽爽爽爽 | 欧美一区二区三区啪啪 | 韩日av在线播放 | 波多野结衣av手机在线观看 | 国产精品久人妻精品老妇 | 中文字幕久久熟女人妻av免费 | 国产欧美日韩久久久久 | 亚洲国产精品人人做人人爱 | 亚洲 自拍 色综合图区一 | 蜜臀麻豆 | 亚洲区在线 | 在线a久青草视频在线观看 91成人免费在线观看 | 九一国产在线观看 | 久久99精品国产一区二区三区 | 国产污污视频 | 一区二区三区日韩在线 | 国产午夜福利片1000无码 | 尤物视频在线免费观看 | 最近中文字幕免费视频 | 天天干天天操天天 | 天堂√在线中文官网在线 | www伊人| 色欲色香天天天综合网www | 国产精成a品人v在线播放 | 免费观看无遮挡www的视频 | 狂野欧美激情性xxxx | 久久久受www免费人成 | 搡老熟女老女人一区二区 | 国产成人一级片 | 91在线一区 | 伊人久久久久久久久 | 97精品| 天天操夜夜添 | 国产粉嫩白浆 | 国产精品久久久久免费 | 四虎影院永久地址 | 无码熟妇人妻av在线影院 | 狠狠色综合久久丁香婷婷 | 4480yy私人精品国产 | 国产精品亚洲а∨天堂 | 色开心 | 久久超| 国产亚洲日韩在线aaaa | 人妻少妇偷人无码视频 | 亚洲乱码国产乱码精品天美传媒 | 亚洲午夜成人精品电影在线观看 | 亚洲性无码av在线欣赏网 | 人妻三级日本香港三级极97 | 久久精品亚洲国产av老鸭网 | 嫩草视频在线看 | 色哟哟入口 | 暖暖免费 高清 日本社区在线观看 | 人人妻人人澡人人爽欧美精品 | 日本色站 | 亚洲制服丝袜中文字幕在线 | 91免费进入 | 中文有码视频在线播放免费 | 无尺码精品产品国产 | 都市激情综合 | 看毛片网 | 丝袜老师高潮呻吟高潮 | 日韩中文字幕一区二区三区 | 真人性生交免费视频 | 综合色亚洲 | 亚洲成av人最新无码 | 亚洲黄网站在线观看 | 久久亚洲精品成人av二次元 | 亚洲国产在一区二区三区 | 国产99视频在线 | 天堂网www天堂资源网 | 亚洲国产成人久久综合同性 | www在线观看视频 | 在线视频一区二区 | 国产无遮挡18禁无码免费 | 免费看一级黄色片 | 欧美一级黄色片子 | 国产凸凹视频一区二区 | 国产精品视频色尤物yw | 婷婷色网| 一本到在线 | 91涩| 亚洲中文久久精品无码 | 涩五月婷婷| 久久亚洲精品综合国产仙踪林 | 免费视频欧美无人区码 | 午夜精| 亚洲影音先锋 | 国产精品无码久久av嫩草 | 欧洲精品卡1区2卡三卡四卡 | 97超级碰碰碰久久久久app | 亚洲国产成人av | 久久激情五月 | 色综合亚洲一区二区小说性色aⅴ | 无码avav无码中文字幕 | 久久久精品国产99久久精品麻追 | 奇米影视777四色狠狠 | 草裙社区精品视频播放 | 成年无码动漫av片在线尤物网站 |