最新更新 sitemap 设计搜素
网页设计
国外网站 韩国网站 个人主页 手提袋设计 CSS 网页特效 平面设计 网站设计 Flash CMS技巧 服装网站 php教程 photoshop 画册 服务器选用 数据库 Office
网上家居 虚拟主机 域名注册 云主机 网页设计 客服QQ:8208442

网页菜单详解(4):定位问题

日期:10-27    来源:http://www.cnwebshow.com|    作者:

 通过前三篇文章的讲解,现在我们已经可以实现一个基本的菜单了。这一章,我们来讨论一下定位的问题。

  在前几章讲的例子中,定位都是相对于整个网页的左上角。在有一些时候,我们可能需要它相对于网页中某个元素定位,这样做在某些时候是非常有必要的,比如不会出现那种因窗口大小的改变而致使菜单与网页中的一些元素的相对位置发生变化。在第一章的最初,笔者所给的例子中就是这样做的。

  在那里我们很方便把就把这个菜单插入到了网页中,而菜单不会相对菜单按钮的位置发生变化。下面我们就看看如何来实现。

  在第一章,我们讲过position,当它取值absolute的时候,即绝对定位。既然是定位,就要有参照物。一般来讲,这个定位的参照物是body(即整个网页)的左上角,但如果其父级元素中有设置了position:absolute的元素,那么它的参照物就是该元素。知道了这样一个特性,我们就可以很容易的来实现了。

  另外,有一点在这里必须要着重说明一下,前面同时也讲过,当position的值为relative时,就是相对定位,为什么不用它来实现呢?我们必须要正确理解这里所谓的相对定位:它是指相对于原来在HTML中的位置所发生的偏移,而它仍占据原来在HTML中所占据的位置。而我们现在的菜单需要“悬浮”在网页元素之上,而这只有当position设为absolute时才可以做到。

  通过上面的讲述,我们应该可以大致的了解其实现的原理了。下面就看看刚才在上面看到的那个菜单的代码(注意里面的注释会帮你加深理解)。

-------------------------------------------------------------------------------<style type=text/<a href=http://www.cnwebshow.com/edu/Dreamweaver/ target=_blank class=infotextkey>css</a>> 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;" onmou<a href=http://www.cnwebshow.com/site/seo/ target=_blank class=infotextkey>seo</a>ver="myMenu.style.display='block'" onmou<a href=http://www.cnwebshow.com/site/seo/ target=_blank class=infotextkey>seo</a>ut="myMenu.style.display='none'"> <!--上面的DIV就是我们看到的按钮部分,它并未涉及任何定位的部分, 不要与下面两个混淆。--> <div style="position:absolute;width:0px;height:0px;overflow:visible;"> <!--注意上面的DIV,设置了position:absolute,但是并没有设置left/top, 所以这时它仍与一个普通的HTML元素一样,出现在它应该出现的位置。--> <div id=myMenu style="position:absolute;left:-10px;top:18px; display:none;width:90px;background-color:#3366CC; padding:5px;text-align:left;"> <!--它的定位是相对于前一个DIV而不是Body, 因为前一个DIV设置了position:absolute--> <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>-------------------------------------------

  请仔细理解上面的代码,相信大家对用css进行绝对定位会有一个更深层次的认识!

  这里说一句题外话:这种定位可以用Dreamweaver来实现(这对于对JS不是很熟的朋友来讲的确很方便),而事实上这样做生成的代码的原理与上面讲的相同的。把上面讲的原理弄清楚了,使用起来会更灵活。