分享

再学“绝对定位”(一)

 荟萃天地 2011-10-29

再学“绝对定位”(一)

写于2010-11-03 11:10:51 阅读:243 分类:源代码练习 作者:习之

摘要:制作一个音画帖,如果透明Flash使用了绝对定位,就要外加一个定位“层”以设定绝对定位的坐标“原点”。目的是将音画底图和透明Flash捆绑在一起,无论音画帖拷贝到何处,Flash都不会飘走。


再学“绝对定位”(一)     

做一个音画作品,如果只是在一张背景图上布置若干个透明Flash,那么最简单的方法就是用一个table标签,将背景图作为table的背景(background),透明Flash放置在td标签内,可以只用相对定位不用绝对定位层,习之过去的博客有这样的例子。效果如下,代码请参阅:“透明FLASH的使用方法(一)相对定位

说明:下面的效果只能在版本为IE7以下的浏览器才能看到。如果您是IE8,请用IE8为与低版本兼容而附加的“兼容性按钮”,也可以在浏览器菜单栏的工具里设置兼容性。否则看到的Flash是一张张平铺的,没有叠加的效果。

用“相对定位”做的音画

需IE7或以下的浏览器里看

它的代码虽然简单,但有局限。一》作为背景图(如上面的蓝天白云图),上传时多大就显示多大,不能调节大小。二》在背景图上,除了Flash,将不能再写文字或再贴一张小图。因此,制作音画图常常会用到源代码里的“绝对定位”。

所谓“定位”就是在页面上显示的内容,根据设置的坐标值(left 和 top)来决定它在页面上的位置。既然是“坐标”,就有个“坐标原点”。相对定位的原点就在“当地”(根据上下文它应该在的位置)。而绝对定位,如果事先不规划“原点”的位置,那么它在网页的左上角。我们老小孩的博客或论坛,是镶嵌在网页中的,上下、左右都是网站规划好的内容,包括原点也是网站规划好的。它的位置请参看我的博客:“透明FLASH的使用方法(二)绝对定位”。 在本文最上面标题行的左面有一个红色的小方块,这就是老小孩网站给博客规划好的“原点”。

我们的博客有个博主的头像,打开博客时头像展开,过一会儿头像收起,我们的博文也会随着上升。请注意,博客文章的上下发生了变化,而本文显示的红色小方块是固定不变的。也就是说,作为“绝对定位”的原点也是不动的。假如博客是一幅音画,上面布置的透明Flash是用绝对定位的,那么原点不动,透明flash相对于原点也不动,而背景图随着头像的收起上升了,也就是说透明flash的位置相对音画下降了。

在论坛,网站也规划好了“原点”,也在类似的位置。论坛有“主帖”、“跟帖”、“楼层”,如果自己不重新规划“原点”而直接用了绝对定位,那么在不同的楼层应该采用不同的坐标值(left和top的值)。否则,在主帖里位置正常的flash拷贝到“底楼”,这个Flash会仍然会留在上面,相对于音画帖子说,它飘走了。

想个法子将背景图和透明Flash捆绑在一起,无论搬到何处,它们相互的位置始终保持不变。这就要将“原点”设置在背景图的内部,并与背景图绑定。方法很简单,设置一个新的定位层(最常用的是建一个相对定位层),将这些要捆绑在一起的内容统统置放在新的定位层里面,这个新设置的定位层就为里面的“绝对定位”提供了一个新的“原点”。

在音画帖里,凡是Flash的位置用了绝对定位(position:absolute),而没有规划它们的“原点”,不妨在它们(背景图和全部Flash)的外部再加个“箍”,将它们绑定。方法:进入到“编辑”--“源码”:

1》在需要绑定的对象前加下述代码,

<div style="position:relative; left:0px; top:0px;">

 

2》再在需要绑定的对象后加上div的封闭标签(如下):

</div>

 

3》设置好了这个定位层,需要将内部Flash的绝对定位坐标值left和top的数据做相应的修改。但这是一次性的,改定以后,无论搬到何处,Flash都不会飘走了。

 

请参看我的上一篇博客:秋叶飘飘效果的源代码,在最外层也用了一个相对定位层,目的是框住飘飘的枫叶,使它不飘到外面去。

 

在源代码里“层”是由div标签设置的,div的起始标签和/div结束标签就像捆绑的绳子,将这两个标签内部的内容,全部捆绑在一起。上面代码里设置div,是一个相对定位层(position:relative),left 和top均设置成0 ,原点就位于层的左上角。例如,里面有一张背景图片,那么原点的位置与图片的左上角重叠。这样所有在里面的采用绝对定位的Flash,原点也就全部统一了。

在上面的代码里,没有设置宽和高,也就是没有限定层的范围。如果设置了宽和高,通常要同时设置当内容超出了这个范围时的处理方法(即overflow属性)如果不设置,默认是内容可见,如果设置成auto,就像老小孩的博客区域,当里面的内容超出后会自动加上滚动条。

 

div标签在源代码里称为“块级元素”,它能产生一个“块级容器”,等待我们去规划这个容器,以放置各种内容,如文本、图像、Flash等等。

使用div标签下面几点十分重要:

一:它的“封闭标签”不能省。在一篇代码里,有一个div的起始标签必须要有/div结束标签相对应,这两个标签之间是容器里的内容。因为div标签可以嵌套,结束标签样子又都是相同的,因此写代码,一定要知道它们的配对情况,不能落单。

二:div标签的属性几乎都要在style里设置,包括宽度、高度、对齐等属性。这与table标签不一样,刚开始用时经常会出错。

例如,在div里这样设置宽度和背景色是无效的:width="100px" bgcolor="#ffcccc"

应该如此设置:style="width:100px; background-color:#ffcccc"

等等。所有在style里的设置可以写在一对引号内,中间用英文半角的分号“;”分开。

三:按HTML源代码的规则,各个Flash按代码出现的先后顺序显示,如果Flash有重叠,代码先出现的在下面,后出现的覆盖在上面。如果要改变顺序,需要在style里加“层号”设置:Z-index: XX   XX代表不为0的整数(可以是负数,表示在背景图的下面)

 

--待续--

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多