Html 负利润的概念-我理解了吗?

Html 负利润的概念-我理解了吗?,html,css,margin,Html,Css,Margin,我读到负边距top和left接受元素并将其推向这个方向。另一方面,负的底部和右侧边距在元素上绘制其余内容 问题: 我有一个浮动元素浮动:对;包裹在body标签中。负左边距将使其向左移动 负右页边距根本不起任何作用,因为文档结束于负页边距开始的位置,并且没有任何东西可以在元素上绘制(或在元素上绘制) 我说得对吗 负右边距肯定有效 还拉了一把小提琴。当然,负利润是可行的 负边距将始终与正边距在块框上的工作方式相同。它们只是以与正边距相反的方向移动一个框和/或周围的框。见鬼,负利润甚至可以 如果发

我读到负边距top和left接受元素并将其推向这个方向。另一方面,负的底部和右侧边距在元素上绘制其余内容

问题:

我有一个浮动元素浮动:对;包裹在body标签中。负左边距将使其向左移动

负右页边距根本不起任何作用,因为文档结束于负页边距开始的位置,并且没有任何东西可以在元素上绘制(或在元素上绘制)


我说得对吗

负右边距肯定有效

还拉了一把小提琴。当然,负利润是可行的


负边距将始终与正边距在块框上的工作方式相同。它们只是以与正边距相反的方向移动一个框和/或周围的框。见鬼,负利润甚至可以

如果发生任何溢出,则相关箱子将调整并适应此箱子的移动

如果一个元素在某个方向上浮动,那么浮动方向一侧的边距将对其自身位置产生影响,相反位置的边距将相对于任何后续浮动对其产生影响

负右页边距根本不起任何作用,因为文档在负右页边距开始的地方结束,并且没有任何东西可以在元素上方绘制(或在元素上方绘制)

不,有一个东西叫做,理论上它有无限的扩展空间。是否有边距将元素从页面正文或页面根中挤出?NBD,只需沿该方向展开画布,在视口中创建一个用于显示此画布的滚动条,然后完成

这与在其父元素具有
溢出:auto
的元素上有一个负边距是一样的,因为(因为您不能让东西在浏览器窗口本身明显溢出…)


许多人对负利润率也有同样的误解。您所描述的行为往往与许多负利润率案例相匹配,但它从一个有缺陷的角度解释了它们。实际上,负边距在框的任何一侧都有相同的效果,但在“移动框”或“插入其他内容”方面则没有效果

例如,
左边距:-20px
表示“将元素定位为其左边缘距离其真实左边缘向内20像素”。A
右边距:-20px
表示完全相同的内容,但用于右边距

在您提供的过于简单的描述中,负左边距确实会将元素本身向左移动,因为其左边缘与上一个元素的右边缘相邻,但浏览器假装元素的左边缘实际上向右移动,因此元素本身的内容似乎向左移动

使用负右边距时,浏览器会将下一个元素的左边缘与元素的右边缘相邻,但它会假装元素的右边缘向左移动,因此下一个元素本身会显示为向左移动

在这两种情况下,唯一改变的是浏览器对元素边位置的概念

当您有右浮动图元时,浏览器将对其进行定位,使其右边缘与上一个右浮动图元的左边缘相邻,或者,如果没有上一个右浮动图元,则它将与其位置父图元的右边缘相邻(哪个是最接近的父元素,其
位置
样式不是
静态
)。在您的情况下,您没有上一个右浮动元素,因此浏览器会定位元素,使其右边缘与父元素的右边缘相邻,但它会假装元素的右边缘向左移动,因此您的实际内容向右移动,伸出父元素之外


。带有蓝色边框的框具有负的左右边距。其中的黄色框表示浏览器对它的看法-它比蓝色边框的框窄,因为负边距告诉浏览器向内移动其边,从元素的实际大小开始。如您所见,其定位框的位置完全正确与任何元素一样,在两侧接触其左右兄弟元素。实际内容在两个方向上的扩展量完全相同,因为其负边距是相同的。感知到的变化是元素本身由于其左边距而向左移动,后续内容由于其右边距而向左移动,但正如你所看到的,事实上,两边的效果完全相同。

你为什么不测试它呢?我做了,我描述的发生了,我不需要一个黑客补丁,但我想完全理解这个概念。试着用float设置负右页边距:对。你会感到惊讶;)负右页边距和上页边距在我的Firefox:sime中确实有效果,在你的演示中,只有最高利润有效,证实了我所说的
enter code here