网页菜单详解(1):基本原理

文章作者 100test 发表时间 2007:01:15 18:13:50
来源 100Test.Com百考试题网


首先看这下面的例子(鼠标移上去):

Link 1
Link 2
Link 3
...
Link N
菜单实例

  类似这样的仿Windows下拉菜单,在网上是比较常见的,最初出现在微软网站上,之后被大量效仿。 事实上制作这样一个模拟菜单也并不是一件很困难的事,比如上面的例子代码如下: ------------------------------------------- <style type=text/css> td,div { font: normal 12px 宋体. } a { color: #F8F8F8. text-decoration: none. } a:hover { color: #F8F8F8. text-decoration: underline. } </style> <div style="background-color:#3366CC.width:68px.text-align:center. padding:3px.border-bottom:1px solid #FFFFFF.z-index:1." onmouseover="myMenu.style.display=�block�" onmouseout="myMenu.style.display=�none�"> <div style="position:absolute.width:0px.height:0px.overflow:visible."> <div id=myMenu style="position:absolute.left:-10px.top:18px.display:none. width:90px.background-color:#3366CC.padding:5px.text-align:left."> <a href=#none>Link 1</a><br> <a href=#none>Link 2</a><br> <a href=#none>Link 3</a><br> <a>...</a><br> <a href=#none>Link N</a><br> </div> </div> <a href=#none>菜单实例</a> </div> -----------------------------------  那么下面我们就由浅入深的对这种模拟菜单进行分析讲解。

  在讲解之前,有一点需要说明的是:笔者在后面讲解的代码都基于当前的主流浏览器Microsoft Internet Explorer(即我们通常所说的IE)下的。笔者进行调试的浏览器是IE 5.01。另外,这样一个菜单体现的是HTML/CSS/javascript的综合应用,这里并不对一些细节进行详细的讲解,所以你至少应该有一点这方面的基础。


  基本原理


  其实,这个菜单实现的原理简单的说就是:设置页面元素的CSS属性,对其进行定位并设置其是否可见,然后通过激发一定的事件,用javascript来动态的改变这些属性。

  看下面几个CSS属性:

  position:定位类型,取值static/absolute/relative,其代表的含义简单的说即无定位/绝对定位/相对定位;
  left:距离左侧的位置(具体的参照物与position的设置有关),单位为px或%;
  top:距离顶部的位置(具体的参照物与position的设置有关),单位为px或%。
  display:页面元素的显示状态,如取值block表示做为块状元素显示,none则为不显示,还有其他一些取值(如inline等)这里就不做详解。

  比如上例中的“div id=myMenu style="position:absolute.left:-10px.top:18px.display:none...”就是使用了这几个属性。

  下面我们来看看如何用javascript来控制页面元素的CSS属性。

  对HTML有一定了解的朋友一定清楚,几乎所有的标记都有一个style属性,通过设置这个属性来设置该标记的CSS属性(即CSS的内联用法)。在javascript中,每一个标记都被视为Document对象的一个子对象,而该标记的每一个HTML属性也都是这个对象的属性或子对象,style就是其中一个,通过用javascript控制style的属性,就达到了动态改变页面元素CSS属性的目的。如上例中的“onmouseover="myMenu.style.display=block"”就是一个很普通的用法,其中myMenu即我们所看到的“菜单”的ID,它原来的display为none,即不显示,当鼠标移上去时,变为block,即块状显示。

  另外要提的是:前面只说了如何实现定位、如何动态控制,那么定位的、控制的是什么元素呢?原则上来讲,大部分块状元素(如div、table)都可以,而在IE中,div标记(注意,在一些非IE浏览器中,并不支持div标记)因其使用的灵活性和方便性而做为我们的首选。上例使用的就是div标记。

  好啦,基本的过程,上面大致已经说完了,在下一章,我们将看到使用上面提到的技术来实现一个简单的菜单。

相关文章


网页瘦身小技巧---“分割大法”
网页菜单详解(2):初步实现
网页菜单详解(1):基本原理
网页菜单详解(3):样式修饰
网页菜单详解(4):定位问题
什么是JSP?JSP有哪些优点?
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛