`
ice-cream
  • 浏览: 328468 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

相对定位和绝对定位

    博客分类:
  • Css
阅读更多

前言

在用CSS控制排版过程中,定位一直被人认为是一个难点,这主要是表现为很多网友在没有深入理解清楚定位的原理时,排出来的杂乱网页常让他们不知所 措,而另一边一些高手则常常借助定位的强大功能做出些很酷的效果来,比如CSS相册等等,因此自己杂乱的网页与高手完美的设计形成鲜明对比,这在一定程度 上打击了初学定位的网友,也在他们心目中形成这样的一种思想:当我熟练地玩转CSS定位时,我就已是高手了。不管你怎么想,我只希望下面的教程能让你更深 入地了解CSS定位属性。

阅读建议

先说说我这篇教程的思路,这对于你在正真开始阅教程前是有很大帮助的。我的思路是这样的:先给出定位较专业化精炼的解释,接下来再用打比如的方法形 象地介绍它们,此时大家要和前面讲到的专业解释对比阅读。介绍完理论,将通过实例来介绍定位的各知识点,虽然实例不美,但每一则实例都是精心挑选的,如果 要完整掌握CSS定位方法,请务必弄懂每一个实例的原理。最后将会带大家做一个较为酷的综合实例。如果你想提高你阅读本文的兴趣或者动力,你可以先跳到最 后看综合实例的运行效果。

1.定位的专业解

(1)语法
position : static | absolute | fixed | relative
(2) 说明
从 上面语法可以看出,定位的方法有很多种,它们分别是静态(static),绝对定位(absolute),固定(fixed),相对定位 (relative)。在这个教程里,我不逐一讲,只讲最常用也是最实用的两个定位方法:绝对定位(absolute)、相对定位(relative)。

绝对定位(absolute): 将被赋予此定位方法的对象从文档流中拖出,使用left,right,top, bottom等属性相对于其最接近的一个最有定位设置的父级对象进行绝对定位,如果对象的父级没有设置定位属性,即还是遵循HTML定位规则的,则依据 body 对象左上角作为参考进行定位。绝对定位对象可层叠,层叠顺序可通过 z-index 属性控制,z-index值为无单位的整数,大的在最上面,可以有负值(目前负值FF不支持)。
相对定位(relative): 对象不可层叠,依据left,right,top,bottom等属性在正常文档流中偏移自身位置。同样可以用z-index分层设计。

2.定位的形象解释

我先来架设一个虚拟的场景:有一个矩形的房间,里面还有一个水桶装了些水,水里还浸泡着一个西瓜,这个房间半空中还有不少的钩子用于挂东西用。现在 我把网页元素与上面物件对应上,那么房间就是一个网页,水桶是网页中的一个板块,桶中的水就是文本流,西瓜就是将要被定位的对象。
(1)贡献的绝对定位(absolute)
对 照前面解释,如果西瓜被赋予绝对定位,那么就等于把西瓜从水中捞起来挂在半空中的钩子上,水桶中西瓜原来占用的空间水会自动填补它(绝对定位对象会让出自 己原先占用位置,所以说它是贡献的)。此时如果之前没有对水桶进行定位设定,那么被拿起的西瓜位置不会再受水桶位置影响,水桶怎么移动,西瓜还是挂在原来 位置,至于西瓜要怎放,则以房间左上角(body左上角)为准,用left,right,top,bottom值来定位。但是如果水桶也给出了定位设置 (通常是相对定位,下面有讲到这一实用技巧),此时西瓜的摆放就没有那么自由了,尽管此时西瓜被拿起来了不会影响水桶中的水(文本流),但它还是要听桶的 话,桶会告诉西瓜“你可以活动,但应该在我的范围内走动,比方说我要你在我左上方1米处,你就要跟死这一点,我走你也要跟着走”,如果桶中有很多个西瓜, 可以全部拿出来吊到半空中,它们将被安排在不同高度的空间(层),所以在房顶垂直往下看,有可能看到不同西瓜层叠在一起的情况(这个所谓的高度在网页中是 不存在的,就像FLASH动画中的不同层上安排了元素,但它们在看时不会有深度感觉)。可见绝对定位的对象参考目标是它的父级,专业称之为包含块。
(2)自私的相对定位(relative)
相 对定位一个最大特点是:自己通过定位跑开了还占用着原来的位置,不会让给他周围的诸如文本流之类的对象。相对定位也比较独立,做什么事它自己说了算,要定 位的时候,它是以自己本身所在位置偏移的(相对对象本身偏移)。再拿前边作比如来解,那么此时西瓜似乎是有魔法的,如果西瓜通过相对定位在水桶中偏移了你 会看到一个现实生活中不存在的现象:水中有一个地方水凹下去了,周围的水不能填补它,西瓜看起来在旁边,如果搅动一下桶中的水,那个凹的位置会发现改变 (文本流对相对定位对象还存在影响),但是凹处到西瓜出现的距离始终保持一致。可见文本流与它之间还会互相影响,因为对象并没有真正脱离文本流,就像有两 个人在同一层楼水平移动的过程中会有碰头的机会。
(3)总结两种定位的特征
绝对定位就像是把不同对象安排到了一栋高楼的不同楼层(一般指不是第一层,我们这里理解为文本流就放在首层),它们互不影响,但是它们怎么移动与你楼的地基和面积(父级)有关。相对定位指对象还是在首层楼与文本流一起存放,它们之间肯定存在影响。
(4)对特殊情况的补充
在 用相对定位和绝对定位的时候,有一种情况是它们的定位值用到了负值则对象可沿相反方向移动,刚才说到的把对象安排在一栋楼的不同层,如果某个对象一开始就 是背靠着最外边墙的,此时再用一个负值定位它,它就会神奇般地跑出墙外去了,当然现实中可没有这种惊险而又神奇的事发生,本人只为了延用上面的比如作形象 解释。

3.实例强化对定位属性的理解

(1)无定位设置,对象遵循HTML定位规则。一般是子级不会跑出父级外边去(子级没有使用负边界情况),子级一般是靠在父级左上角的,父级放在最下层。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无定位设定,对象遵循HTML定位规则</title>
<style type="text/css">
<!--
body {
 margin:0px;
 font-size: 9pt;
 margin-top: 150px;
 margin-left: 150px;
}
.box1 {
 background-color: #33CCFF;
 height: 200px;
 width: 200px;
}
.box2 {
 background-color: #66CC66;
 height: 100px;
 width: 100px;
}
-->
</style>
</head>

<body>
<div class="box1">
  <div class="box2"></div>
</div>
</body>
</html>

(2)给设定了定位属性的对象指定left,right,top,bottom属性中的至少一个,不然定位不起作用。下面实例中虽然给box2设定了定位 属性position: absolute,但是如果没有指定其中一个方位定位值top: 0px,定位是不发生作用的,你可以删除我注释的样式再测试效果进行前后对比。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>给定位对象指定一个方位数值</title>
<style type="text/css">
<!--
body {
 margin:0px;
 font-size: 9pt;
 margin-top: 150px;
 margin-left: 150px;
}
.box1 {
 background-color: #33CCFF;
 height: 200px;
 width: 200px;
}
.box2 {
 background-color: #66CC66;
 height: 100px;
 width: 100px;
 position: absolute;
 top: 0px;/*如果没有指定一个方位定位属性和值,绝对定位不起作用,你可以删除这一项看一下效果*/
}
-->
</style>
</head>

<body>
<div class="box1">
  <div class="box2"></div>
</div>
</body>
</html>

 (3)绝对定位对象可以层叠,层叠顺序用z-index控制,如果没有指定则遵循其父对象的定位方法,就目前来说要做到不同浏览器正常浏览,最好不要给 z-index指定负值,因为像FF这样标准的浏览器不支持负值,为了解释这一现象,下面实例中的最底层图片我用到了负值,所以会出现在IE中可以看到3 幅图层叠,而转到FF中你就只能看到两幅图层叠了。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>绝对定位对象可以层叠,层叠顺序可用z-index控制,但最好不要用负值,因为FF不支持</title>
<style type="text/css">
<!--
body {
 margin:0px;
 font-size: 9pt;
 margin-top: 150px;
 margin-left: 150px;
}
.box1 {
 background-color: #33CCFF;
 height: 200px;
 width: 270px;
 background-image: url(http://farm1.static.flickr.com/80/251133988_e0b8174060_m.jpg);
 background-repeat: no-repeat;
 background-position: center center;
 position: absolute;
 left: 10px;
 top: 10px;
 z-index:-1;/*这里用了负值,在标准浏览器,如FF中是不能正常显示的*/
}
.box2 {
 background-color: #66CC33;
 height: 200px;
 width: 270px;
 background-image: url(http://farm1.static.flickr.com/6/76318014_e50414fe42_m.jpg);
 background-repeat: no-repeat;
 background-position: center center;
 position: absolute;
 left: 50px;
 top: 50px;
}
.box3 {
 background-color: #996699;
 height: 200px;
 width: 270px;
 background-image: url(http://farm1.static.flickr.com/48/172522117_410a1e87c1_m.jpg);
 background-repeat: no-repeat;
 background-position: center center;
 position: absolute;
 left: 100px;
 top: 100px;
}
-->
</style>
</head>

<body>
<div class="box1"></div>
 <div class="box2"></div>
    <div class="box3"></div>
</body>
</html>

 (4)相对定位对象会占据它原来位置,在下面实例中,没有设定相对定位前,绿色小盒子是在蓝色盒子左上角的,之前也设定了绿色小盒子的浮动方式为左浮动, 可以看到文本环绕在它右边,但是后来用相对定位方法把绿色小盒子重定位到外面去了,它还占着自己原来位置,因为你还可以看到文本流没有发生自动填补流动。 因此这种直接的相对定位方法较少用,因为重定位对象后原来位置空了一块。相对定位常与绝对定位结合用,一般是给父级设定相对定位方式,子级元素就可以相对 它进行方便的绝对定位了(请注意看后面的实例)。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>相对定位对象会占据原有位置</title>
<style type="text/css">
<!--
body {
 margin:0px;
 font-size: 9pt;
 line-height:12pt;
 margin-top: 150px;
 margin-left: 150px;
}
.box1 {
 background-color: #3CF;
 height: 200px;
 width: 200px;
}
.box2 {
 background-color: #6C6;
 height: 100px;
 width: 100px;
 position: relative;
 float: left;
 top:-120px;
}
-->
</style>
</head>

<body>
<div class="box1">
  <div class="box2"></div>
[相对定位对象会占据原有位置]现在绿色小盒子是以子盒子形式存在蓝色大盒子中,并设定了浮动方式为左浮动,所以这些文字能环绕在它右边,当绿色小盒子用相对定位方法重定位到外边去了,文字还是不能流入它的区域,即左上角空白区域,那是因为绿色盒子还占用着它原来位置。</div>
</body>
</html>

 (5)相对定位的对象不可以重叠。这一点也许比较难理解,先来这样理解吧,因为相对定位的对像没有脱离文本流,就像两个还是住在同一层楼的人,任何时候, 他们脚下踩的地方不可能被另一个人踩着的,如果可以就意味着两个人共享一块地方了。在下面的实例中,两个小盒子都刚好排在大盒子上方,所以在大盒子中输入 的文字被挤到了下面。上面两个盒子我再用相对定位的方法对调了它们的位置,当前它们下方的空间其实不是自己的,也正因为它们没有重叠,所以盒子上方还是有 两个盒子占用的空间,下面文字无法向上流动(我已对盒子设定了浮动属性的了,如果不设定,即使有空间文本也不会往上流,上面盒子是块级元素,会独立占据一 行)。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>相对定位对象不可层叠</title>
<style type="text/css">
<!--
body {
 margin:0px;
 font-size: 9pt;
 line-height:12pt;
 margin-top: 150px;
 margin-left: 150px;
}
.box1 {
 background-color: #33CCFF;
 height: 200px;
 width: 210px;
 padding:5px;
}
.box2 {
 background-color: #66CC66;
 height: 100px;
 width: 100px;
 position: relative;
 float: left;
 left:100px;
}
.box3 {
 background-color: #CC99FF;
 height: 100px;
 width: 100px;
 position: relative;
 float: left;
 right:100px;
}
-->
</style>
</head>

<body>
<div class="box1">
  <div class="box2">我家在左边</div>
  <div class="box3">我家在右边</div>
  相对定位对象是在正常文本流中移动的,所以它的存在还是会影响文本流的布局, 如果是绝对定位,这些文本应向上流入上方两个盒子的底部了。
</div>
</body>
</html>

 6)高度自适应的妙用。在下面实例中,右边的紫色小盒子高度是没有设定的,它的高度是随着里面内容的增加而增高的,但我们又可以通过绝对定位方法把它始终定位在父盒子的右上角。同理,我们也可以只设定高度而让宽度自动随内容增加而变宽。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>高度自适应的妙用</title>
<style type="text/css">
<!--
body {
 margin:5px;
 font-size: 9pt;
}
.box1 {
 background-color: #33CCFF;
 height: 500px;
 width: 500px;
 position: relative;
}
.box2 {
 background-color: #CC99FF;
 width: 100px;
 position: absolute;
 right:3px;
 top:3px;
 text-align: center;
 line-height:15pt;
}
.box3 {
 width: 390px;
 height:500px;
 position: absolute;
 left:0px;
 top:0px;
 line-height:15pt;
 border-right: thin dashed #999;
}
-->
</style>
</head>

<body>
<div class="box1">
  <div class="box3">右边的小盒子高度是没有设定的,它的高度是随着里面内容的增加而增高的,但我们又可以通过绝对定位把它始终定在父盒子的右上角。</div>
  <div class="box2">
    <p>蓝色理想<br />
    经典论坛<br />
    业界动态<br />
    技术文档
    </p>
  </div>
</div>
</body>
</html>

 (7)给包含块一个高度,或者说给定位对象的父级设定一个高度。不然也许显示的结果并不是你想要的。在下面的例子中,如果你本意要实现下面效果:把小盒子在父盒子中的左上角垂直往下偏移,上方留出一块区域,如果你删除了box1的高度会怎么样呢?自己测试一下吧。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>给包含块一个高度</title>
<style type="text/css">
<!--
body {
 margin:0px;
 font-size: 9pt;
 line-height:12pt;
 margin-top: 150px;
 margin-left: 150px;
}
.box1 {
 background-color: #33CCFF;
 width: 200px;
        height: 200px;/*如果不设定这个高度,也许显示的结果并不是你想要的*/
 
}
.box2 {
 background-color: #CC99FF;
 height: 100px;
 width: 100px;
 position:relative;
 bottom:-100px;
}
-->
</style>
</head>

<body>
<div class="box1">
  <div class="box2"></div>
</div>
</body>
</html>

 (8)放置绝对定位对像到可视区外会出现滚动条。一般情况下,绝对定位是用来方便定位网页要看得见元素的,而不是拿它来隐藏对象的,一般隐藏对象常用到display与margin,如果你试图把绝对定位的对象移出可视区域,嘿嘿,浏览器会为你准备滚动条去看望它。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>放置绝对定位对像到可视区外会出现滚动条</title>
<style type="text/css">
<!--
body {
 margin:0px;
 font-size: 9pt;
 line-height:12pt;
}
.box{
 background-color: #996699;
 height: 200px;
 width: 270px;
 background-image: url(http://farm1.static.flickr.com/48/172522117_410a1e87c1_m.jpg);
 background-repeat: no-repeat;
 background-position: center center;
 position: absolute;
 left: 900px;
 top:0px;
}
.box2{
 height: 200px;
 width: 270px;
 border: 1px dashed #996699;
}
-->
</style>
</head>

<body>
<div class="box2">这是右边对象原来所在的位置,即没有被赋予定位属性前的位置</div>
<div class="box"></div>
</body>
</html>

 (9)放置相对定位对像到可视区外不会出现滚动条。此现象很好理解,因为相对定位对象原来位置没有变,原来位置没有出去滚动条就不会出现。在下面实例中,如果你缩小浏览器窗口,相对定位的对象还会出现完全消失的情况呢。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>放置相对定位对像到可视区外不会出现滚动条</title>
<style type="text/css">
<!--
body {
 margin:0px;
 font-size: 9pt;
 line-height:13pt;
}
.box{
 background-color: #996699;
 height: 200px;
 width: 270px;
 background-image: url(http://farm1.static.flickr.com/48/172522117_410a1e87c1_m.jpg);
 background-repeat: no-repeat;
 background-position: center center;
 position: relative;
 left: 900px;
}
.box2{
 height: 200px;
 width: 270px;
 position:absolute;
 border: 1px dashed #996699;
}
-->
</style>
</head>

<body>
<div class="box2">虚线框是右边盒子原来的位置,即用了相对定位后,把对象重新定位到了右边,但对象的位置其实还在这里,或者说对象实际上并没有越出浏览器可视区域,所以不会出现滚动条。<br />
我说过相对定位的的盒子原有位置是不会被占用的,但我为什么可以在这里写说明呢,这是因为我用了绝对定位,我只是为了方便说明才这样做的,请不要误解了。</div>
<div class="box"></div>
</body>
</html>

 10)定位的特殊值情况。如果定位设置是这样的:position:relative ,right:200px, left:10px会出现什么情况呢?一边叫对象向右偏移10px,另一边又叫对象向左偏移200px,到底是听那边的呢,还是那个先,那个后呢。针对这 种矛盾情况,CSS规定只听左边的left,而右边怎么设置都被重定为-left,即-left =right。上下值top与bottom矛盾的话,就以top为准,所以在下面的实例中,你如何改变right的值,对象位置不会发生改变的。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>定位的特殊值情况</title>
<style type="text/css">
<!--
body {
 margin:0px;
 font-size: 9pt;
 line-height:12pt;
 margin-top: 150px;
 margin-left: 150px;
}
.box1 {
 background-color: #33CCFF;
 width: 200px;
 height: 200px;
}
.box2 {
 background-color: #CC99FF;
 height: 100px;
 width: 100px;
 position:relative;
 right:200px;/*此值总被认为是-left=-10px,所以你怎么改它都不会影响到布局*/
 left:10px;/*这里设定了两个定位值,但是它们是矛盾的,所以此时将以左边为准,如果是上下类型错误,则以上边定位数值为准*/

}
-->
</style>
</head>

<body>
<div class="box1">
  <div class="box2"></div>
</div>
</body>
</html>
 

转自:蓝色理想

分享到:
评论
10 楼 阳光暖暖 2009-03-05  
ice-cream 写道

阳光暖暖 写道我觉得这个地方的说明有问题,因为.box2本来的位置就在左上角这个地方,使用绝对定位以后它把自己的位置让出来了,所以下面的代码会使.box占据box2的位置。再对.box使用相对定位,它才能到现在页面中的位置。作者加的注释只是引导你去理解,如果你不看注释自己就能理解当然最好了,毕竟每个人都有自己的理解方式。ff3和ie7的解释是一样的,ie6特殊,不会出现滚动条。现在浏览器版本更新的太快了,倒是ie6还没被淘汰,每次都要为了兼容ie6写些hack。这篇文章我已经没有再维护了,只是出现问题后就去看看

O(∩_∩)O~,还是谢谢你的回复!
9 楼 ice-cream 2009-03-05  
阳光暖暖 写道

我觉得这个地方的说明有问题,因为.box2本来的位置就在左上角这个地方,使用绝对定位以后它把自己的位置让出来了,所以下面的代码会使.box占据box2的位置。再对.box使用相对定位,它才能到现在页面中的位置。

作者加的注释只是引导你去理解,如果你不看注释自己就能理解当然最好了,毕竟每个人都有自己的理解方式。
ff3和ie7的解释是一样的,ie6特殊,不会出现滚动条。
现在浏览器版本更新的太快了,倒是ie6还没被淘汰,每次都要为了兼容ie6写些hack。
这篇文章我已经没有再维护了,只是出现问题后就去看看
8 楼 阳光暖暖 2009-03-05  
都看完了,O(∩_∩)O~,发现:
引用
(9)我说过相对定位的的盒子原有位置是不会被占用的,但我为什么可以在这里写说明呢,这是因为我用了绝对定位,我只是为了方便说明才这样做的,请不要误解了。

我觉得这个地方的说明有问题,因为.box2本来的位置就在左上角这个地方,使用绝对定位以后它把自己的位置让出来了,所以下面的代码会使.box占据box2的位置。再对.box使用相对定位,它才能到现在页面中的位置。
.box{  
 background-color: #996699;  
 height: 200px;  
 width: 270px;  
 background-image: url(http://farm1.static.flickr.com/48/172522117_410a1e87c1_m.jpg);  
 background-repeat: no-repeat;  
 background-position: center center;  
 /*position: relative;  
 left: 900px;*/ 
}  
.box2{  
 height: 200px;  
 width: 270px;
 position:absolute;    
 border: 1px dashed #996699;  
}

7 楼 dcqouming 2009-02-10  
我就为这个烦着呢,看了css的定位,人都晕了
6 楼 abushuia 2008-12-28  
ice-cream 写道

abushuia 写道
(9)放置相对定位对像到可视区外不会出现滚动条。他说应该不会出现滚动条。我看了一下能够出现。在ff3.0下测试的。恩,看了你的回答,我刚也测了下,ff3.0下,调整浏览器大小时,当对象越出浏览器可视区域就会出现滚动条,ff3.0下会认为对象的位置是相对定位后的位置,而ie下会认为对象的位置其实还在原来的位置没变。你的回答你对的。

谢谢~~ 无论转载的还是自己写的重要的不是正确性。至少写自己的博客是这样的。而是通过写博客可以收获到那些知识,这些知识在工作中能用到多少。这几天看你的前台知识收获很多。你的好多例子我都调试运行过。good job!
5 楼 ice-cream 2008-12-28  
abushuia 写道

(9)放置相对定位对像到可视区外不会出现滚动条。他说应该不会出现滚动条。我看了一下能够出现。在ff3.0下测试的。

恩,看了你的回答,我刚也测了下,ff3.0下,调整浏览器大小时,当对象越出浏览器可视区域就会出现滚动条,ff3.0下会认为对象的位置是相对定位后的位置,而ie下会认为对象的位置其实还在原来的位置没变。你的回答你对的。
4 楼 abushuia 2008-12-27  
(9)放置相对定位对像到可视区外不会出现滚动条。他说应该不会出现滚动条。我看了一下能够出现。在ff3.0下测试的。
3 楼 ice-cream 2008-12-26  
abushuia 写道

有几个错误,
(3) ff下三个图片都能显现.可能ff能够支持负值了。
(9) ff下滚动条能出来。ff3.0

你看得真仔细,这篇是我以前在蓝色上面转载过来的。
我检查了一下ff3.0现在可以支持z-index取负值了,所以(3)这个例子现在是错的,会误导大家,跳过不要看了。
(9)这个例子没有问题哦,这个例子只是在解释什么position: relative;相对定位,我不知道你说的“(9) ff下滚动条能出来。ff3.0”是什么意思?
2 楼 abushuia 2008-12-26  
有几个错误,
(3) ff下三个图片都能显现.可能ff能够支持负值了。
(9) ff下滚动条能出来。ff3.0
1 楼 baihaiting 2008-12-02  

相关推荐

    相对定位和绝对定位PPT学习教案.pptx

    相对定位和绝对定位PPT学习教案.pptx

    绝对定位和相对定位

    在网页设计和开发中,定位(Positioning)是布局的关键元素,主要分为两种类型:相对定位(Relative Positioning)和绝对定位(Absolute Positioning)。这两种定位方式都是CSS(层叠样式表,Cascading Style Sheets...

    详解微信小程序 相对定位和绝对定位

    理解并熟练运用相对定位和绝对定位对于创建响应式、动态的微信小程序界面至关重要。通过合理地使用这两种定位方式,开发者可以创建出灵活多变的用户界面,提升用户体验。同时,合理定位还能帮助解决复杂的布局问题,...

    div中的相对定位与绝对定位.pdf

    本文主要讨论的是CSS中的两种定位方式:相对定位和绝对定位,特别是在`div`元素中的应用。 1. 相对定位(relative) 相对定位允许元素相对于其原本在正常文档流中的位置进行偏移。当对一个元素设置`position: ...

    div+css相对定位和绝对定位用法实例详解

    本教程将深入探讨两种主要的定位方式:相对定位和绝对定位,这两种方法在DIV+CSS布局中尤其常用。 1. 相对定位(relative) 相对定位是CSS定位的基础,它保持元素在正常文档流中的位置,但允许通过`top`、`right`、...

    div中的相对定位与绝对定位.docx

    在网页布局中,`div`的相对定位和绝对定位提供了解决复杂布局问题的强大工具。相对定位允许元素在其原位置基础上移动,而不会影响其他元素;绝对定位则允许元素脱离正常流,相对于特定祖先或浏览器窗口进行定位。...

    绝对定位+相对定位的妙用——一秒搞清子父级关系

    综上所述,理解并熟练运用相对定位和绝对定位,以及它们之间的子父级关系,能极大地提升网页设计的灵活性和精确性。通过实践和案例分析,可以更好地掌握这些技巧,从而创造出更加精致和动态的网页布局。

    CSS网页布局教程:绝对定位和相对定位

    总的来说,理解和熟练掌握相对定位和绝对定位,以及如何结合使用Left、Right、Top、Bottom和Margin属性,是构建动态、灵活的网页布局的基础。这不仅有助于创建复杂的网页设计,还能提高代码的可维护性和可扩展性。...

    第七讲 GPS绝对定位与相对定位

    第七讲 GPS绝对定位与相对定位

    松下FP XH六轴标准程序,程序控制六个伺服,轴的点动控制,回零,相对定位,绝对定位,程序结构清晰,分块编程通俗易懂,注释完整

    本文将详细解析“松下FP XH六轴标准程序”的相关知识,该程序主要用于控制六个伺服轴进行点动控制、回零、相对定位和绝对定位等操作,具有清晰的程序结构和易于理解的分块编程设计,注释完备,便于理解和应用。...

    ATKdriver.rar

    基于STM32战舰开发板,学习ATK-2MD4850 步进电机驱动器的使用,学会使用驱动器控制步进电机相对定位和绝对定位。 通过usmart或者板载按键调用单片机里面的函数,实现对步进电机驱动器的控制,从而控制步进电机的相对...

    css定位绝对相对定位

    ### CSS定位详解:绝对定位与相对定位 #### 相对定位(Relative Positioning) 相对定位是一种常见的CSS定位方式,它允许元素相对于其正常位置进行偏移。这种定位不会影响其他元素的位置。 - **定义**: 当元素...

    博途FB284的应用及使用111报文实现电机位置定位.pdf

    * FB284可以实现相对定位和绝对定位两种模式的电机控制。 * 相对定位模式下,电机的位置信息是相对于参考点的。 * 绝对定位模式下,电机的位置信息是绝对的,无需参考点。 四、使用111报文直接控制电机 * 111报文...

    html css中的定位

    本文将深入探讨 HTML CSS 中的定位,包括绝对定位和相对定位。 首先,我们需要理解 CSS 中的基本定位方式。CSS 提供了多种定位模型,如静态定位、相对定位、绝对定位、固定定位和粘性定位。这些定位方式都是为了...

    html定位属性详解

    例如,当需要在相对定位的元素内部放置一个绝对定位的子元素时,子元素可以根据父元素的位置进行精确定位,同时不影响页面上其他元素的布局。此外,`margin`属性可以用来调整元素之间的间距,当与偏移属性结合使用时...

    网页制作中层相对定位的实现方法

    层定位主要包括两种形式:**绝对定位**和**相对定位**。绝对定位是指层相对于其最初位置或浏览器窗口的位置进行固定,而相对定位则是指层相对于其最近的非静态定位祖先元素的位置进行定位。 #### 实现方法 ### 1. ...

Global site tag (gtag.js) - Google Analytics