Css 在垂直方向上相对于父元素定位元素,但在水平方向上相对于视口定位元素

Css 在垂直方向上相对于父元素定位元素,但在水平方向上相对于视口定位元素,css,Css,我有一个UI元素,它在单击时打开一个工具提示/弹出窗口。我希望工具提示窗口显示在UI元素的正下方,但在移动设备上,它应该与视口的左侧和右侧对齐,而不是在“更多…”按钮下居中 换言之,我希望: 。工具提示{ 顶部:100%;//显示在按钮的正下方 左:10px;//10px*距离窗口边缘* } 有没有一种方法可以像这样混合引用?是否基于父对象计算top位置,而基于视口计算left和right (顺便说一句,我知道我可以用JavaScript实现这一点,但我想先寻找一个纯CSS解决方案)到目前为止

我有一个UI元素,它在单击时打开一个工具提示/弹出窗口。我希望工具提示窗口显示在UI元素的正下方,但在移动设备上,它应该与视口的左侧和右侧对齐,而不是在“更多…”按钮下居中

换言之,我希望:

。工具提示{
顶部:100%;//显示在按钮的正下方
左:10px;//10px*距离窗口边缘*
}
有没有一种方法可以像这样混合引用?是否基于父对象计算
top
位置,而基于视口计算
left
right


(顺便说一句,我知道我可以用JavaScript实现这一点,但我想先寻找一个纯CSS解决方案)

到目前为止,我拥有的最好的解决方案是确保具有
位置:相对的
并在绝对位置工具提示的引用处操作的父对象跨越视口的整个宽度。这是可行的,但这意味着工具提示不能只是一个可以添加到应用程序中任何位置的插件,这正是我试图实现的。

到目前为止,我拥有的最佳解决方案是确保具有
位置:relative
并在绝对位置工具提示的引用处起作用的父对象跨越视口的整个宽度。这是可行的,但这意味着工具提示不能只是一个可以添加到应用程序中任何位置的插入式组件,这正是我试图实现的。

工具提示周围有一个额外的父元素,可以将其垂直放置

工作演示:

锚定
工具提示
。工具提示父项{
位置:绝对位置;
左:0;
右:0;
}
.工具提示{
左:10px;
位置:相对位置;
}
编辑:

实际上,这在没有父元素的情况下也可以工作。只需绝对定位工具提示:

。工具提示{
左:10px;
位置:绝对位置;
}

默认情况下,工具提示将粘贴到锚的底部。当然,您将无法使用
top
bottom
属性,因为它们将相对于视口,但您可以使用
margin
来调整垂直位置。工具提示周围有一个额外的父元素,可以将其垂直定位

工作演示:

锚定
工具提示
。工具提示父项{
位置:绝对位置;
左:0;
右:0;
}
.工具提示{
左:10px;
位置:相对位置;
}
编辑:

实际上,这在没有父元素的情况下也可以工作。只需绝对定位工具提示:

。工具提示{
左:10px;
位置:绝对位置;
}

默认情况下,工具提示将粘贴到锚的底部。当然,您将无法使用
top
bottom
属性,因为它们将相对于视口,但您可以使用
margin

调整垂直位置,如何使用css媒体查询以设备大小独立设置工具提示的样式?Javascript可能是工具提示的完全可靠的解决方案。使用css媒体查询以设备大小独立设置工具提示的样式如何?Javascript可能是工具提示的完整解决方案。