css网页下拉菜单制作方法(1):基本原理

作者:钟钟 来源:天极设计在线 时间:2007-02-03 11:39:00 

    首先看这下面的例子(鼠标移上去):
[提示:你可先修改部分代码,再按运行]
 类似这样的仿Windows下拉菜单,在网上是比较常见的,最初出现在微软网站上,之后被大量效仿。 事实上制作这样一个模拟菜单也并不是一件很困难的事,比如上面的例子代码如下:

<XMP style="COLOR: #666666">-------------------------------------------<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;">      &nbsp;<a href=#none>Link 1</a><br>      &nbsp;<a href=#none>Link 2</a><br>      &nbsp;<a href=#none>Link 3</a><br>      &nbsp;<a>...</a><br>      &nbsp;<a href=#none>Link N</a><br>    </div>  </div>  <a href=#none>菜单实例</a></div>-----------------------------------</XMP>

那么下面我们就由浅入深的对这种模拟菜单进行分析讲解。
  在讲解之前,有一点需要说明的是:笔者在后面讲解的代码都基于当前的主流浏览器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标记。
  好啦,基本的过程,上面大致已经说完了,在下一章,我们将看到使用上面提到的技术来实现一个简单的菜单。  

延伸阅读:

css网页下拉菜单制作方法(2):初步实现

css网页下拉菜单制作方法(3):样式修饰

css网页下拉菜单制作方法(4):定位问题

标签:css,下拉菜单
0
投稿

猜你喜欢

  • JS 显示当前日期+星期(静态)

    2007-09-11 13:29:00
  • asp Access数据备份,还原,压缩类代码

    2011-03-07 11:16:00
  • 如何在2003系统注册fso组件

    2010-11-29 19:55:00
  • HTTP 错误 500.100 - 内部服务器错误 - ASP 错误

    2008-09-12 13:07:00
  • ASP分页函数

    2009-07-06 12:41:00
  • ASP格式化日期的函数(输出13种样式)

    2011-07-12 20:22:00
  • 完美解决MySQL中文乱码

    2011-03-16 15:16:00
  • asp 小偷采集程序原理与常用函数方法

    2011-03-06 10:36:00
  • JS中实现JAVA的hashCode算法

    2008-08-03 17:00:00
  • 正则表达式学习笔记

    2008-04-15 07:44:00
  • 解决mysql不能插入中文Incorrect string value

    2009-07-30 09:02:00
  • 仿淘宝网站的导航标签效果!

    2008-11-05 12:37:00
  • 关于ASP eof与bof 区别分析

    2011-03-11 11:14:00
  • ADO组件之分页程序详解

    2008-10-09 12:28:00
  • 讲解MaxDB数据库和MySQL的数据库的主要差别

    2012-02-25 20:04:34
  • JavaScript十二月新标准ECMA262v5快速浏览

    2009-12-27 12:56:00
  • ORACLE常见错误代码的分析与解决(二)

    2010-08-02 13:31:00
  • 前端来看看 maxthon bugs

    2008-09-23 18:35:00
  • VML模拟Rose画流程图代码

    2008-09-02 10:58:00
  • PDO取Oracle lob大字段,当数据量太大无法取出的问题的解决办法

    2009-04-30 18:41:00
  • asp之家 网络编程 m.aspxhome.com