|
主题: 再问问用层做下拉菜单的定位...
|
 7877767
职务:普通成员
等级:2
金币:1.0
发贴:528
注册:2002/2/19 0:11:31
|
#12002/6/20 18:55:03
不知道最简单有效可行的解决不同分辨率下层的错位的办法是什么?我不喜欢用这种经常看到的办法:一. 常出现的问题 当你的表格选居中的时候又插入了层(插入层方法1:object->draw layer)的时候(800*600),分辨率一旦变大、窗口最大化之后,层就错位了,而如果使用菜单(插入层方法2:Insert->Layer)插入层的时候,这个层就会与它的上级元素相对定位,但是一旦在Dreamweaver中用移动工具动了它,它就会马上变成绝对定位,不会再与上级元素相对定位了。
二. 思想:
通过object面板置入的层是绝对定位的层,这个绝对定位指的是层的左上角与浏览器窗口内部的左部、顶部距离,代码中的写法是left与top。 通过菜单置入的层是相对定位的层,这个相对定位指的是层与它的上级元素的距离(它的上级元素的左上角),由于这个div中不再有left与top的属性,所以浏览器把它的位置定为与它的上级元素相同
(总结一:只要去掉层的left与top属性就可以相对定位!)
例图:
三. 深入思想:
现在层已经相对定位了,可是只是这样还完全不能满足要求,因为很多时候不能把表格设定得那样准确,否则会把表格搞得很麻烦,把代码搞得很大很大。 如果在上面说做出的相对定位的层的基础上再做一个层对它相对定位,不就解决问题了吗? 这就涉及到了父层与子层的问题(由于它是层的基础,在书与网上教程中就可以看到,这里不再阐述),父层相对于某点定位,而子层相对于父层定位,就可以达到层的相对定位这个目标了
四. 具体制作(只介绍最简单的方法,对代码熟的朋友可以手敲的):
先在页面内插入表格(可以设居中,表格就居中了,否则几乎无意义),鼠标在某单元格内点一下,让光标在此闪动,然后通过菜单插入一个层,这个层就相对与这个单元格定位了。插入一个层之后,不要动它,而且也永远不要动,但是可以更改它的大小,比如把它的高与宽都改成"0",让它不再影响你对其他内容的编辑,否则,这个层的left与top属性出现之后就成了绝对定位了,变成绝对定位后你可以把它的left与top属性去掉,就恢复成相对定位了。变成"0"之后,有时子层会看不见,可以按[f11]键点它恢复编辑。 现在光标在这个层内闪动,再通过菜单插入子层,这时子层与父层重叠,你可以随意移动它,不管怎么动,它都是相对与父层定位。 好了,一个相对定位的层(子层)做好了,你可以在里面随意添加内容了,也可以改变它的尺寸、位置、背景等所有属性,但是不要动left与top属性,因为它是相对于父层的左上角定位的。
下面给出父层与子层在Dreamweaver中的属性面板:
父层:
子层:
五. 技巧:
先把页面设为778象素宽、cellpadding="0" cellspacing="0" (为了适合现在绝大多数显示器的800*600分辨率)
|
 DW5
职务:普通成员
等级:2
金币:1.0
发贴:399
注册:2001/10/21 9:02:05
|
#22002/6/20 21:00:33
想得这么复杂干什么??都不想看了
做表格的时候顺便在旁边做几个小的表格,用来放层标签,层定位的时候把left去掉就可以,这样分辨率改变,表格移动了,层也跟着小表格移动。。。
很简单的问题不用想得这么复杂
|
 7877767
职务:普通成员
等级:2
金币:1.0
发贴:528
注册:2002/2/19 0:11:31
|
#32002/6/21 8:19:15
我知道楼上兄弟说的办法和用JS来定位的办法,我是想和大家研究研究,探讨探讨其他的办法...
|
 cwg918
职务:普通成员
等级:1
金币:0.0
发贴:8
注册:2002/6/26 15:09:57
|
#42002/6/26 15:33:32
看看这个网页吧。http://www.windstudio.net/tech/show.asp?id=20
|