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

来源:13-9 Relative与Absolute组合使用

kingtakeshi

2016-08-03 16:25

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

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

写回答 关注

7回答

  • 枫叶满山飘
    2016-08-14 00:50:37

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

  • l_yanlei
    2016-08-05 02:21:09

    什么是绝对定位:

    如果想为元素设置层模型中的绝对定位,需要设置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是相对于浏览器窗口的,才不管你参考块是什么。

  • qq_蓝色闪光_03338193
    2016-08-03 18:09:08

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


  • 虔婆
    2016-08-03 17:05:30

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

  • 慕粉3769436
    2016-08-03 17:03:12

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

  • AirLuo
    2016-08-03 16:59:42

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

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

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

  • iphone886
    2016-08-03 16:59:05

    父元素当然jiu是前辈元素

初识HTML(5)+CSS(3)-升级版

HTML(5)+CSS(3)基础教程8小时带领大家步步深入学习标签用法和意义

1225294 学习 · 18230 问题

查看课程

相似问题