本文介绍了打破一个绝对定位的元素出自其相对位置的祖先?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我有一个文档

 < style type =text / css> 
div {
border:1px solid;
padding:15px;
}

#i_am_relatively_positioned {
background-color:#fcc;
margin:50px;
padding:50px;
position:relative;
}

#inner {
background-color:#cfc;
}

#i_want_to_be_absolute_to_body {
background-color:#ccf;
left:0;
position:absolute;
top:0;
}
< / style>

< body>
< div id =i_am_relatively_positioned>
< div id =inner> inner< / div>
< div id =i_want_to_be_absolute_to_body>绝对身体< / div>
< / div>
< / body>

有没有办法使#i_want_to_be_absolute_to_body相对于body元素绝对定位,而不是立即相对容器?



我知道我可以使用一些负面的顶部和左边,但这似乎kludgey - 这是我唯一的选择吗?

  document.body.appendChild(document.getElementById('i_want_to_be_absolute_to_body')); 


Suppose I have a document like

<style type="text/css">
div {
  border:1px solid;
  padding:15px;
}

#i_am_relatively_positioned{
  background-color:#fcc;
  margin:50px;
  padding:50px;
  position:relative;
}

#inner {
  background-color:#cfc;
}

#i_want_to_be_absolute_to_body{
  background-color:#ccf;
  left:0;
  position:absolute;
  top:0;
}
</style>

<body>
  <div id="i_am_relatively_positioned">
    <div id="inner">inner</div>
    <div id="i_want_to_be_absolute_to_body">absolute to body</div>
  </div>
</body>

Is there a way to make #i_want_to_be_absolute_to_body positioned absolute with respect to the body element, rather than its immediate relative container?

I know I can just use some negative top and left but that seems kludgey - is this my only option?

解决方案

You can use a bit of javascript to do this (I'm assuming you can't change the markup?).

document.body.appendChild(document.getElementById('i_want_to_be_absolute_to_body'));

这篇关于打破一个绝对定位的元素出自其相对位置的祖先?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-24 15:37