css相对位置绝对位置问题

直接上图

clipboard.png css代码

clipboard.png html代码

想知道这个imgtop: -20px; left: -90px是相对于header的margin边缘 还是相对于content
我感觉是相对于content 但是不是很确定
不知道我有没有表述清楚~
谢谢拉

阅读 4.4k
6 个回答

上面几个答案都是错的,除了贴图的那位
(然而看答案下的评论,貌似好像他也并不知道图里表达的到底是啥意思 = =)

不是margin也不是content,而是padding边padding edge

这里.badge的top是-20px,.badge就在header的padding边的基础上,往上移了20像素
如图图片描述

我把.badge的top改成0px,图片就紧贴着header的顶部padding了
图片描述

.badge的top改成20px:
图片描述

这一块蛮复杂的,几句话解释不清,
绝对定位元素的显示效果是根据它的包含块来的,
怎么个根据法,看这两篇文档:
http://www.ayqy.net/doc/css2-...
http://www.ayqy.net/doc/css2-...
啥叫包含块,看这个:
http://www.ayqy.net/doc/css2-...

absolute 相对于已定位祖先元素的padding box(包含content和padding)产生偏移,如果没有写top、left,默认是在content位置

absolute参照的是离他最近的设置了absolute或者relative属性的元素z作为参照点,你这个地方img参照的是header

相当于content

父元素position: relative;,子元素position: absolute;的这种常用的定位,两个元素各自使用的参考边如下图:

clipboard.png

图中蓝色的是子元素,红色的是父元素(容器元素)。

其中edge的在盒模型的位置请参考w3c的这张图:

clipboard.png

content

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题