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

relative和absolute运用

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>相对参照元素进行定位</title>

<style type="text/css">

div{border:2px red solid;}

#box1,#box2,h1{

    margin-left:0px;

    margin-top:0px;

}

#box1{

    width:200px;

    height:200px;

    position:relative;

          

}

#box2{

  position:absolute;

top:20px;

left:30px;

          

}

/*下面是任务部分*/

#box3{

    height:200px;

    width:200px;

    position:relative;

    

    

}

 #box4{

     width:99%;

     position:absolute;

     bottom:0;

     left:0px;

 }   


 

</style>

</head>


<body>

<div id="box1">

<div id="box2">相对参照元素进行定位</div>

</div>


<h1>下面是任务部分</h1>

<div id="box3">

    <img src="http://img1.sycdn.imooc.com//541a7d8a00018cf102000200.jpg">

    <div id="box4">当我还是三年级的学生时是一个害羞的小女生。</div>

</div>

</body>

</html>为什么box3要用relative,box4相对于父级绝对定位吗,那现在box3已经是box4的父级了啊,为什么还要用relative



正在回答

4 回答

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

这里“定位属性”重点,如果box3不加position:relative使box3具有定位属性的话,那么box4的绝对定位就会相对于body元素去定位了。

然后我又想为什么box3非要用relative相对定位呢?用absolute绝对定位行不行?经过测试发现也可以。也能够实现box4相对于box3的相对定位。

那么我又考虑到,用relative对box3进行相对定位一定是有原因的。经过研究我发现,如果用absolute对box3进行相对定位的话,box3会从文档流中脱离出来,造成后面的内容混乱,box3后面的内容跑到box3前面(我在box3前后加了一大段文字用来测试),因为absolute决定定位的特性就是会脱离文档流。

而relative相对定位的一大特性就是“初始位置保持不变”,不会造成后面内容的混乱。

说的有点乱,你可以把我代码中box3那段relative删除,再换成absolute分别看一下效果就了解了,哪里有问题我们继续讨论

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>相对参照元素进行定位</title>

<style type="text/css">

div{border:2px red solid;}

#box1{

    width:200px;

    height:200px;

    position:relative;

          

}

#box2{

  position:absolute;

top:20px;

left:30px;

          

}

/*下面是任务部分*/

#box3{

    width:200px;

    height:200px;

    position:relative;       

}

#box4{

    width:99%;

  position:absolute;

bottom:0;

    

}

</style>

</head>


<body>

<div id="box1">

<div id="box2">相对参照元素进行定位</div>

</div>


<h1>下面是任务部分</h1>

1234123412341234123412341234132

<div id="box3">

    <img src="http://img1.sycdn.imooc.com//541a7d8a00018cf102000200.jpg">

    <div id="box4">当我还是三年级的学生时是一个害羞的小女生。</div>

</div>

asdfasdfasdfasdfasdfasdfasdfa

</body>

</html>


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

慕田峪9304305 提问者

非常感谢!
2018-04-20 回复 有任何疑惑可以回复我~
#2

慕慕1721642

请大神看下这个小节中我的问题
2018-04-24 回复 有任何疑惑可以回复我~

一父一子

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

子绝父相,儿子绝对定位,父亲就要相对定位,不然儿子就会参照浏览器进行定位

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

慕田峪9304305 提问者

绝对定位不是以父级元素定位吗,box3是box4的父级啊,还要用相对定位干嘛呢
2018-04-17 回复 有任何疑惑可以回复我~

box3是父级,所以要设置一个参照定位position:relative,意思就是有人要参照你的定位了

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

慕田峪9304305 提问者

relative不是相对定位吗
2018-04-17 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

relative和absolute运用

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