关于利用css定制下拉菜单

访问过 Microsoft 中文主页的很多人都不会忘记它新奇的下拉式菜单吧. 它的确给我们带来一股清新的网风, 它实现了网页上下拉菜单, 不仅剩去了很多点击的麻烦, 并开创了一个网页设计的未来之路.  

 我们知道, 通过 CSS 可以确切地定义一个 HTML 元素的样式,包括它的颜色、字体、边框、3D效果、滤镜等等,我们在考虑制作下拉菜单时,首先是想到 CSS 的定位技术,它精确的定位能力可以使我们放心的甚至是在三维空间设置位置和可见性。   

CSS 定位使用"position"属性的两种方法定位 HTML 元素,这就是相对定位(relative)和绝对定位(absolute),相关的定位属性有9个:   position、left、top、width、height、clip、overflow、z-index、visibility

  当使用"absolute(绝对)"定位元素时,该元素就被当作一个矩形覆盖物来格式化,格式化后的矩形区域就变成了一个可以放置其他 HTML 元素的容器,这个容器可以凌驾于 HTML 文档的布局之上,区域下面的文字和图形永远也无法环绕和透过该容器显示出来。这样被绝对定位了的元素我们称之为块级元素,在块级元素内放置的 HTML元素我们称之为子元素。  

 另外,当我们在移动鼠标时,具有对 HTML 元素有感应的 JAVA 动作是 onmouseup、onMouseOver、onMouseOut.   onmouseup 为鼠标点击之后的释放动作    onMouseOver 为鼠标经过时的动作    onMouseOut 为鼠标离开某区域时的动作.  

 除此之外,我们建立菜单都是为了表达一定的快捷的操作,通常是超级连接(URL).菜单上的每一条命令都应该对鼠标的行踪、点击有感应。所以,必须建立菜单对鼠标行为的多级捕获。首先是容器本身(块级元素)对鼠标经过时和离开时建立捕获,其次是菜单上各条命令对鼠标行为的捕获。也就是鼠标经过时,菜单打开响应,鼠标离去是菜单关闭。   

因为菜单都是在网页调入时动态建立的,为了减轻浏览器的运行负担,加快速度,所以各个菜单只初始化一次,以后的打开和关闭操作仅仅是容器本身(块级元素)的可视与隐藏而已。   

菜单的动态建立用 document.write 语句完成。 ---- 也因为是使用 CSS,因此每个菜单的第一句开头应该如此:   document.write ('< STYLE type="text/css" >...后跟菜单定位语法,根据浏览器的不同一般而言,Netscape 用相对定位, IE 用绝对定位要好一些。   

然后是建立容器(块级元素) 对鼠标 onMouseOver 、 onMouseOut 的捕获。可以这样写: document.write('< span id=菜单标识 onMouseOver="发生的打开动作" onMouseOut="菜单的关闭动作" >...   

其次,以如下方式层层建立菜单及捕获行为。需要注意的是菜单项定义是和鼠标感应操作定义在一块的。   < a href="超级连接" onMouseOver="菜单响应事件" onMouseOver="菜单关闭事件"> 第一条命令< /a >< br >   < a href="超级连接" onMouseOver="菜单响应事件" onMouseOver="菜单关闭事件" > 第二条命令< /a >< br >   < a href="超级连接" onMouseOver="菜单响应事件" onMouseOver="菜单关闭事件" > 第三条命令< /a >< br >   ...   

如果要把菜单加上边框的话,只须在菜单(块级元素)属性里加上 border: < 粗细 > < 长度 > < 颜色 > < 三维效果 > 即可。例如:   ...{padding: 2pt} #TestMenu1{border:thin soild outset; position:absolute;... 就成为一个立体的细边菜单。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值