0

问题:给定一个 HTML 元素和可能的一些子元素,您能否(以及如何)确定它是或将在左/右流(内联)或上下流(块)中显示它的子元素?

例如,当您想要显示一个“dropcursor”来显示可以删除元素的位置时,就会出现这个问题,就像prosemirror-dropcursor所做的那样。如果元素处于内联流中,则光标应显示为垂直条,如果元素处于块流中,则光标应显示为元素上方/下方的水平条。如果您尝试将内容拖放到其中,您可以在任何文本编辑器中看到相同的行为。

有一些解决方案可能并不完美:

  • 您可以查看 HTML 元素的类型及其默认值。Prosemirror 依靠正在显示的数据的模式来做这样的事情,当你不以与模型一致的方式显示内容时,它就会被欺骗。CSS当然可以覆盖它。

  • getComputedStyle()用于查看和其他属性,在某种程度上模仿浏览器.display渲染算法正在做的事情。但这似乎可能非常复杂并且容易出错 - 考虑 CSS flexbox、grid 等。

  • 您可以查看子元素的相对位置并推断流的方向,但同样,如果您有零个或一个元素,这将不起作用,并且无论如何可能有极端情况。

我只是想知道是否可以直接从浏览器中获取这种东西,或者是否有一种强大的和/或现成的方法来做到这一点。

4

0 回答 0