关于相对定位和绝对定位的理解问题

关于相对定位和绝对定位的理解问题

<!DOCTYPE html>
<html>
<head>
	<title>ceshi</title>
	<style type="text/css">
		*{margin:0px;
		  /*margin-left:0px;*/
			}
		.a1{
			background-color: red;
			position:relative;
			width:500px;
			height:500px;
			top:50px;
			left:50px;
		}
		.a2{
			background-color: yellow;
			position:relative;
			width:200px;
			height:200px;
			top:20px;
			left:20px;
		}
		.a3{
			background-color: blue;
			position:relative;
			width:50px;
			height:50px;
			top:20px;
			left:20px;
		}
	</style>
</head>
<body>
	<div class="a1">
		<div class="a2">
			<div class="a3">
			</div>
		</div>
	</div>;
</body>
</html>

你好,

<!DOCTYPE html>
<html>
<head>
	<title>ceshi</title>
	<style type="text/css">
		*{margin:0px;
		  /*margin-left:0px;*/
			}
		.a1{
			background-color: red;
			position:absolute;
			width:500px;
			height:500px;
			top:50px;
			left:50px;
		}
		.a2{
			background-color: yellow;
			position:absolute;
			width:200px;
			height:200px;
			top:20px;
			left:20px;
		}
		.a3{
			background-color: blue;
			position:absolute;
			width:50px;
			height:50px;
			top:20px;
			left:20px;
		}
	</style>
</head>
<body>
	<div class="a1">
		<div class="a2">
			<div class="a3">
			</div>
		</div>
	</div>;
</body>
</html>

这两种情况中,我分别把三个div全部设置成相对定位和绝对定位,可以看到的视觉效果都是一样的,请问这两种方式有什么不一样的吗?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
卡布琦诺 2017-08-07 10:32:18

当设定position:absolute,如果父级(无限)没有设定position属性,那么当前的absolute则结合trbl属性以浏览器左上角为原始点进行定位 ,如果父级(无限)设定position属性,那么当前的absolute则结合trbl属性以父级(最近)的左上角为原始点进行定位。 当设定position: relative ,则参照父级(最近)的内容区的左上角为原始点结合trbl属性进行定位(或者说相对于被定位元素在父级内容区中的上一个元素进行偏移),无父级则以body的左上角为原始点。相对定位是不能层叠的。在使用相对定位时,无论元素是否进行移动,元素依然占据原来的空间。因此,移动元素会导致它覆盖其他框。一般情况下,我们使用绝对定位,都会给父级元素天津爱相对定位,希望可以帮到你!

小丸子爱吃菜 2017-07-12 10:06:35

1、relative生成相对定位的元素,相对于其原有位置进行定位,所以第一个代码就是相对于它原有的位置进行定位。

2、absolute生成绝对定位的元素,相对于有设置position属性的第一个父元素进行定位,所以a1针对父元素body进行定位,a2针对a1的位置进行定位,a3针对与a2进行定位。

两个虽然效果一样,但是针对的定位是不同的,relative针对的是本身原有的位置,absolute针对的是有position属性的父元素。

祝学习愉快!

  • idcunyu #1
    老师您说的“absolute针对的是有position属性的父元素”这句话,请问是针对position为relative还是absolute的?还是说两者都可以?
    2017-08-07 00:43:51
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师