React Tooltip 中,如何使伪元素宽度自动适应文字内容,同时限制最大宽度并避免自动换行?

React Tooltip 中,如何使伪元素宽度自动适应文字内容,同时限制最大宽度并避免自动换行?

伪元素宽度适应内容,受限于最大宽度且不自动换行

在React Tooltip组件中,如何让伪元素的宽度自动适应文字内容,但同时受到最大宽度的限制?进一步明确要求:在小于最大宽度时不自动换行,只有大于最大宽度时才换行。

首先,我们需要了解伪元素的初始宽度。如果初始宽度小于设置的最大宽度,则文字较少时也能触发换行。在该场景下,伪元素上的left:50%属性导致初始宽度只有父元素宽度的50%,小于最大宽度,从而出现提前换行的现象。

为了解决该问题,我们可以考虑将Tooltip和Tooltip-toggle分别放置在不同的元素上。 Tooltip通过绝对定位相对于body,此时初始宽度更大,不太可能小于max-width。之后,可以使用popper.js等库计算插入,将其定位在Tooltip-toggle周围。

该方法的好处在于,由于Tooltip与Tooltip-toggle不在同一个元素内,初始宽度不会受到Tooltip-toggle影响。当文字内容较少时,伪元素可以通过width: fit-content正常显示,当内容超过最大宽度时,伪元素将在最大宽度处换行。

以上就是React Tooltip 中,如何使伪元素宽度自动适应文字内容,同时限制最大宽度并避免自动换行?的详细内容,更多请关注其它相关文章!