为了账号安全,请及时绑定邮箱和手机立即绑定

什么是前辈元素?为什么前辈元素必须是relative,相对参照的是absolute?

什么是前辈元素?为什么前辈元素必须是relative,相对参照的是absolute?

完全不明白啊,难道不是参照的绝对定位(不动的),而相对参照的才是相对定位吗(按照参照定位元素来定位)?

正在回答

7 回答

首先建立参考系,就是relative,一起发生移动就是absolute

0 回复 有任何疑惑可以回复我~

什么是绝对定位:

如果想为元素设置层模型中的绝对定位,需要设置position:absolute(表示绝对定位),这条语句的作用将元素从文档流中拖出来,然后使用left、right、top、bottom属性相对于其最接近的一个具有定位属性的父包含块进行绝对定位。如果不存在这样的包含块,则相对于body元素,即相对于浏览器窗口

首先你得理解绝对定位到底是怎么回事。

分析一下老师给的定义:

将元素从文档流中拖出来:

意味着这个元素它不会占用原来的位置(和相对定位做对比)

相对于其最接近的一个具有定位属性的父包含块进行绝对定位:

最接近:就是离得最近的

具有定位属性:意味着在css中需要设置position是什么(absolute/relative/fixed)

父包含块:意味着参考块包含着定位块。

如果不存在这样的包含块,则相对于body元素,即相对于浏览器窗口

这样的块是什么块?

这样的快必须同时满足两个条件:

  1. 具有定位属性

  2. 是父包含块

如果找不到,那就相对于body元素定位。

<div id="box1">

            <div id="box2">

                    <div id="box3"> </div>

            </div>

 </div>

例如上面这段代码,假设box3为定位块,box1是参考块,那么box1就应该包含box3.同理,如果你想把box2作为参考块,那么box2也得包含着box3.

(这时,box2,box1都满足条件“是box3的父包含块”,但是还不满足条件“具有定位属性”,如果想把box2或者box2,box1作为参考块,还要给他们添加定位属性,如下)

<style type="text/css">

    #box1{positon:abosute}

</style>

(这时,box1既满足条件“父包含块”,也满足条件“具有定位属性”,那么box1就可以作为参考块了;而box2,依旧不满足“具有定位属性”,尽管box2离box3是最近的,但是依然不能作为参考块。)


综上:只要参考块是定位块的父包含块,并且具有定位属性,那就可以作为参考块。至于是否一定要设置为position:relative,是不一定的。

定位块,你要做相对参考块的定位,那么可以用absolute或者relative,未必一定是absolute,不能用fixed,因为fixed是相对于浏览器窗口的,才不管你参考块是什么。

15 回复 有任何疑惑可以回复我~

(1)前辈元素定义得很形象啊,除了父元素外,还有父元素的父元素、与父元素共父元素的元素以及更外层的元素。(2)楼上AirLuo的解释非常形象,只不过考虑到其他前辈元素时,你得说明一下,前辈元素设为relative是相对于它自己的前辈元素,而定位元素则是相对于当前的前辈元素设置的absolute。


1 回复 有任何疑惑可以回复我~

absplute是不移动的,所以作为儿子,relative是可以移动的,所以做为爸爸,当你在编写页面的时候需要把爸爸移动,儿子是会跟着走的,不然你还要在编写一下儿子弄到爸爸那,

0 回复 有任何疑惑可以回复我~

首先,我想告诉你的是,如果父级元素是绝对定位(absolute)或者没有设置,里面的绝对定位(absolute)自动以body定位。这句话是错的。
正确的是:只要父级元素设了position并且不是static(默认既是static),那么设定了absolute的子元素即以此为包含块(最近的)。
绝对定位(Absolute positioning)元素定位的参照物是其包含块,既相对于其包含块进行定位,不一定是其父元素。

1 回复 有任何疑惑可以回复我~

橱窗=浏览器,一盒烟=relative,烟盒里的烟=absolute。这时候从橱窗中挪动一盒烟。

所以烟盒是在橱窗里,相对它原来的位置发生了移动,即相对位置relative

因为烟盒包括烟(父类),而烟盒里的烟也和烟盒一起发生了移动,是因为烟相对烟盒是绝对位置,即absolute

6 回复 有任何疑惑可以回复我~

父元素当然jiu是前辈元素

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

什么是前辈元素?为什么前辈元素必须是relative,相对参照的是absolute?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信