【发布时间】:2019-04-17 02:28:32
【问题描述】:
考虑到对话框、模式、工具提示等组件的堆叠索引应该高于 HTML 页面中的任何其他元素,我将这些组件放在 root 元素的直接兄弟元素中,所有其他元素都在放置。 React 开发人员会很快意识到这一点,他们会知道我正在尝试使用React Portals。您可以在此处对其进行可视化:
<body>
<div id="root">
// ----- other elements -----
<div id="supposed-parent" />
// ----- other elements -----
</div>
<div id="dialog-container">
<div id="supposed-child" />
</div>
</body>
那么,我如何将#supposed-child 定位在#supposed-parent 旁边或旁边?任何帮助将不胜感激。
【问题讨论】:
-
你可以只使用css。 w3schools.com/css/css_positioning.asp 在您的示例中将容器
position: relative设置为<body>或在实际示例中可能是另一个 div,然后两个<div>s 是position: absolute并具有您想要的定位。或者您可以使用 css 网格并将其父母移动到您想要的位置css-tricks.com/snippets/css/complete-guide-grid -
我反应流利,但不明白你的意思。这也可能是一个纯 CSS 问题。不知道你想达到什么目的,请举个例子。
-
通常,要相对于另一个组件定位一个元素,您只需将该元素作为另一个组件的子元素,然后将
position: relative和position: absolute放在这些元素的样式中。但是,在这种情况下,您可以看到他们不能是父母和孩子。 -
以工具提示为例。无论这些元素的 z 索引如何,工具提示都必须覆盖到网页中的任何元素,对吗?为此,您必须将其放在代码中可以获得更高堆叠索引的位置。但是,把它放在代码的那部分,你不能使用“相对绝对”定位,但你仍然应该将它显示在它假定的父级旁边或相对于它的父级。这就是我想要做的。
标签: javascript html css reactjs