难道没有办法简单地从框模型的流中删除一个元素吗?例如,删除它的框,同时仍然允许它显示

Is there no way to simply remove an element from the flow of the box model, eg remove its box while still allowing it to be displayed?

本文关键字:删除 一个 元素 例如 许它 显示 简单 模型      更新时间:2023-09-26

我觉得我在这里缺少了一些相当基本的东西,我以前认为我已经理解了,但它不起作用,我觉得它应该起作用,也不知道我为什么/需要做什么。

如果我需要画一张图表,我会的,但这个解释就足够了。我有一个主div,里面有一个大型svg绘图。在div中,我试图放置一个相对于div定位的较小div。问题是,当我定位内部div(具有固定大小)时,它会向下推svg图形,因为div当然设置为display:block。

这就是我所期望的工作方式,但似乎应该有一种方法来禁用它,根据我对css的理解,除了浮动整个svg之外,没有其他方法可以做到这一点,这会使整个设计复杂化,因为div的大小决定了svg的大小。就我而言,计划不周,也许是为了期待更多的css。

这就是我要做的吗?难道没有一种简单的方法可以使某个东西既不是块也不是内联——有效地不在块模型中计算它吗?我不明白为什么这不是一个选择,它看起来如此基本。如果dojo工具包中有什么可以帮助的话,我也会使用它,并且我愿意包括其他libs,只要它们不是很大。

使用CSS position:absolute从流中删除元素。在没有进一步定位的情况下,左上角无论如何都会在原来的位置。但是,您需要指定宽度和高度。

以下是HTML中SVG的一个示例,其中SVG是绝对定位的,因此它上面的内容不会移动它:
http://phrogz.net/svg/constant-length-bezier.xhtml

可能值得指出的是,为了将内部div相对于外部div进行定位,有必要将{position:relative}指定给外部div,并将{position:absolute}指定给内部,否则内部div将相对于主体或具有{position:relative}的第一祖先进行定位,除非没有设置其他位置属性(顶部、左侧等)。

如果你明白我的意思。

您可以尝试使用display: inline-block。不确定这是否是你问题的解决方案,但值得一试。