Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 忽略环绕绝对定位div的所有相对定位父div?_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 忽略环绕绝对定位div的所有相对定位父div?

Javascript 忽略环绕绝对定位div的所有相对定位父div?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我知道使用css是不可能的,但我试图找到一些jQuery解决方案,到目前为止,在堆栈上没有找到答案 无论如何,HTML顺序如下所示,并且需要保持如下: <div class="wrapper"> <div style="position:relative;"> <div style="position:relative;"> <div class="dont-want-parents" style="position:absolu

我知道使用css是不可能的,但我试图找到一些jQuery解决方案,到目前为止,在堆栈上没有找到答案

无论如何,HTML顺序如下所示,并且需要保持如下:

<div class="wrapper">
  <div style="position:relative;">
    <div style="position:relative;">
      <div class="dont-want-parents" style="position:absolute;">
      </div>
    </div>
  </div>
</div>

这里有一个工作模式

您可以将它们全部设置回
静态
,这样带有
绝对
的一个会忽略它们。此外,还需要
top
left
,因为
position:absolute
仅从布局中删除元素,而不从其原始位置删除元素

$('.wrapper>div,.wrapper>div>div').css('position','static')
div{
填充:50px;
背景:rgba(255,0,0,0.5);
}
.包装纸{
位置:相对位置;
背景:绿色;
}
1.不要父母{
背景:蓝色;
排名:0;
}

您可以将它们全部设置回
静态
,以使带有
绝对
的忽略它们。此外,还需要
top
left
,因为
position:absolute
仅从布局中删除元素,而不从其原始位置删除元素

$('.wrapper>div,.wrapper>div>div').css('position','static')
div{
填充:50px;
背景:rgba(255,0,0,0.5);
}
.包装纸{
位置:相对位置;
背景:绿色;
}
1.不要父母{
背景:蓝色;
排名:0;
}


那么你的标记的结构应该不同。@RayonDabre好吧,我非常同意,但我不能改变它:)或者更好的说法是我想改变它,但我必须处理它,就像不幸的是,你需要取消父relpos elms所做的抵消;如果一个是150px,那么你的需要是-150px…那么你的标记结构应该不同。@RayonDabre嗯,我非常同意,但这不取决于我去改变它:)或者说我想改变它更好,但我必须像不幸的是那样去处理它你需要取消父母关系所做的抵消;如果一个是150px,那么你的需要-150px…更准确地说,这是布局的简化版本,但是所有的相对div都需要保持相对,因为还有很多其他元素依赖于此。抱歉,这不是答案,CSS也可以做同样的事,正如我所说的,relative必须始终保持相对(使用“append”编辑):),我已经尝试了完全相同的方法,但它破坏了布局,不确定是否可以使用jQuery偏移量执行某些操作?更准确地说,这是布局的简化版本,但是所有相对div都需要保持相对,因为还有很多其他元素依赖于此。抱歉,这不是答案,同样的事情也可以通过CSS来完成,正如我所说的相对必须始终保持相对使用“append”:),我尝试了完全相同的方法,但它破坏了布局,不确定是否可以使用jQuery偏移量执行某些操作?
$(window).on("load resize",function(e){
  var parentoffset = $('.dont-want-parents').parent();
  var elwidth = $('.dont-want-parents').width();
  var offset = parentoffset.offset();
  $('.dont-want-parents').css('right', -offset.left + elwidth);
});