CSS 中,为什么绝对定位(absolute)的父级元素必须是相对定位(relative)?

搞清楚了,正确的应该是只要父级元素=设置了position值(absolute或者relative),那么子元素的position都是以父级元素来定位的。... 搞清楚了,正确的应该是只要父级元素=设置了position值(absolute或者relative),那么子元素的position都是以父级元素来定位的。 展开
 我来答
ggggjataflf
2018-07-04 · 超过10用户采纳过TA的回答
知道答主
回答量:47
采纳率:100%
帮助的人:5.5万
展开全部

HTML代码

<div class="A"> <div class="B"> 我是b </div> </div>

css代码:

 *{ padding:0; margin:0;} 
 .A{ position:relative; width:400px; height:400px; border:1px solid #000;} 
 .B{ position:absolute; right:0px; bottom:...

这两个是配合使用的,A定义了relative后,B就会相对于A进行移动。

其实绝对定位absolute的参照对象是“离它最近的已定位的祖先元素”,这句话里有两个关键,

一个是“离它最近的祖先元素”,意思是那个参照元素不一定是父元素,也可以是它的爷爷、爷爷的爷爷等等,如果它的祖先里同时有2个及以上的定位元素,就参照离它最近的一个元素定位

还有一个是“已定位”,这个定位也不一定非要是相对定位,也可以是绝对定位,为什么一般都是用相对定位呢,因为相对定位的特性是虽然它定位了,就算给了偏移量它离开了原来的地方,但是它原来占的地方也不会让出来的,这样的好处是原来在它周围的其他元素不会因为它的离开而改变位置而使页面乱套,因为在你这个例子里我们只是要让A作为B的一个参照偏移位置,并不需要A元素以及它周围的元素有所改变,所以用相对定位是非常合适的(如果你另有其他需要,祖先元素绝对定位也不是不可以)

一般将absolute元素的父元素设为relative

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
舒服还闲雅的小牡蛎5544
推荐于2017-12-16 · TA获得超过108个赞
知道答主
回答量:132
采纳率:0%
帮助的人:147万
展开全部
css没有规定绝对定位的东西必须有个相对定位的爹地吧。你误解了..
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式