|
主题: 如何实现网页居中,
|
 flashfun
职务:普通成员
等级:1
金币:0.0
发贴:65
注册:2002/9/12 7:59:26
|
#12002/11/18 17:20:43
如何实现网页居中,来适合不同的分辨率,好象只要一条语句,求助
|
 彩云传说
职务:普通成员
等级:2
金币:10.0
发贴:618
注册:2001/5/27 21:26:20
|
#22002/11/18 20:00:59
建一个1X1的表格,宽度和高度均为100%,设定表格内的水平和垂直对齐方式均为CENTER和MIDDLE.然后把所在东西放在里面.
|
 5D荣誉斑竹
职务:普通成员
等级:4
金币:5.0
发贴:1370
注册:2001/7/24 16:38:19
|
#32002/11/18 20:06:47
关于相对于绝对定位的问题经过一阵研究与借鉴他人经验,得出入下结论: 一. 常出现的问题 当你的表格选居中的时候又插入了层(插入层方法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属性,因为它是相对于父层的左上角定位的。 五. 技巧: 先插入一个表格,在其中一个单元格中插入父层,可以把它定得小一点,比如说20象素宽、10象素高,这样它就不会盖住下面的链接,也不影响子层的相对定位。 如果要用778象素宽定义表格,可以把父层插入到表格的第一行第一个单元格中,这样就可以在所有层制作完后插入父层了!对代码熟的朋友就可以手敲父层而不必再去调整子层的位置了。 六. 结束语: 欢迎转载、欢迎批评,欢迎大家前来交流,转载请注明出处(DW插件站)与作者赛扬oicq:819929,谢谢!
|
 5D荣誉斑竹
职务:普通成员
等级:4
金币:5.0
发贴:1370
注册:2001/7/24 16:38:19
|
#42002/11/18 20:08:38
myhyli的解决方法
一般我们都是在800*600分辨率下做页面,如果页面设置了居中对齐方式,那在1024*768等不同分辨率下,层的位置就会有很大偏差,这里提供一个简单的方法 在里加如下script function pageinit() { var xxx=(window.screen.width-800)/2+565; Layer1.style.left=xxx; } 然后在中加入onLoad="pageinit()" 这是通过不同分辨率计算层的位置来实现,layer1是页面中的层,565是这个层在800*600下的left数值,针对做死的页面比较好,如有多个层就每个都这样设置一下
|
 5D荣誉斑竹
职务:普通成员
等级:4
金币:5.0
发贴:1370
注册:2001/7/24 16:38:19
|
#52002/11/18 20:21:54
其实以上的方法都不能完美的解决
如果要完美解决,只能最麻烦的方法,那就是做两个不同的分辨率的网页,然后用下面的代码调用不同的页面
|
 我佛山人
职务:版主
等级:4
金币:16.0
发贴:2269
注册:2002/8/7 15:09:27
|
#62002/11/18 21:26:24
1.在每个层定位修改一下横坐标left:expression(300+(screen.width-800)/2)
其中300是原来在800X600分辨率下横坐标的值,如果是在1024X768下做的横坐标的值为400,则需改为:left:expression(400-(1024-screen.width)/2)
2.两个不同页时在页顶加上这个就可以了
|
 我佛山人
职务:版主
等级:4
金币:16.0
发贴:2269
注册:2002/8/7 15:09:27
|
#72002/11/18 21:27:31
如果页面中没有层,直接把所有内容放在 和之间就行了
|
 超自然世界
职务:普通成员
等级:1
金币:0.0
发贴:5
注册:2002/11/15 0:22:56
|
#82002/11/19 9:35:42
就算有层又如何?把层插在单元格里相对对齐不就行了?二楼兄弟教的方法是最经典的. 我用了几年了.
编辑历史:[这消息被超自然世界编辑过(编辑时间2002-11-19 09:38:11)]
|