Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.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 将绝对定位的元素与其上级元素的边缘右对齐_Javascript_Html_Css - Fatal编程技术网

Javascript 将绝对定位的元素与其上级元素的边缘右对齐

Javascript 将绝对定位的元素与其上级元素的边缘右对齐,javascript,html,css,Javascript,Html,Css,我有一个绝对定位元素,它已经锚定到它的直接父元素。我当前的设计规范要求这些元素与祖先容器的最末端右对齐。我试图在jQuery中找到这些坐标,但不管我怎么做,我似乎都无法得到正确的计算结果。我的第一个想法是将子容器的偏移量设置为最顶部容器的总宽度,然后减去子容器的宽度,但由于两者都有填充物,所以有点多余。我错过了什么?有没有更好的方法来实现这一点?不幸的是,我必须保留父位置和子位置属性 $('.child').offset({ 顶部:$('.parent').offset().top/2, 左:

我有一个绝对定位元素,它已经锚定到它的直接父元素。我当前的设计规范要求这些元素与祖先容器的最末端右对齐。我试图在jQuery中找到这些坐标,但不管我怎么做,我似乎都无法得到正确的计算结果。我的第一个想法是将子容器的偏移量设置为最顶部容器的总宽度,然后减去子容器的宽度,但由于两者都有填充物,所以有点多余。我错过了什么?有没有更好的方法来实现这一点?不幸的是,我必须保留父位置和子位置属性

$('.child').offset({
顶部:$('.parent').offset().top/2,
左:$('.container').outerWidth()-$('.child').outerWidth()
});
#容器{
边框:1px纯黑;
填充:10px;
}
.家长{
位置:相对位置;
}
.孩子{
位置:绝对位置;
填充:10px;
排名:0;
}

父母亲
小孩

也许我遗漏了一些东西,但我不明白您为什么需要Jquery。一个简单的方法会很好地工作

#容器{
边框:1px纯黑;
填充:10px;
}
.家长{
位置:相对位置;
}
.孩子{
浮动:对;
}

父母亲
小孩

您可以使用CSS
transform
属性进行垂直居中,并使用
right:0%
将其固定在右端

#容器{
边框:1px纯黑;
填充:10px;
}
.家长{
位置:相对位置;
}
.孩子{
位置:绝对位置;
填充:10px;
最高:50%;
右:0%;
转换:翻译(0%,-50%);
}

父母亲
小孩

不幸的是,我的设计限制不允许我这样做。您可以添加更多关于允许使用的内容的信息吗?还有,也许你的问题不在那里。您应该能够使用float,这是一个纯css属性。@CarlEdwards我已经编辑了我的答案,以合并flex的使用。但这是否可以通过在子级上使用absolute来实现?@CarlEdwards我不这么认为,但您可以使用Jquery/Javascript删除此属性,为什么不在没有jQuery的情况下将
right:0
放在子元素上?
right:0
是将绝对定位的元素与祖先元素边界框的右边缘对齐的元素。此外,由于CSS涉及多个坐标系——页面、文档、视口和元素本身的坐标系——所以您需要在问题中指定要查找的坐标。但是如果您只想沿着右边缘对齐一个元素,则不需要JavaScript(或JQuery)--
right:0
是您所需要的全部,假设您将正确的祖先元素设置为包含块。