重叠元素的内容重叠:理解谜题
简介
在这种情况下,我们有两个没有任何内容的 div复杂的样式(简单的背景颜色)。我们通过应用负的 margin-top 来操纵第二个 div 与第一个 div 重叠。然而,我们并没有看到一个元素与另一个元素完全重叠,而是发现第二个 div 在第一个 div 的内容和背景之间滑动,表现出意想不到的行为。
绘画顺序
要理解这种行为,我们需要深入研究浏览器中绘画顺序的复杂性。堆叠上下文中元素的绘制顺序遵循预定义的顺序:
- 元素的背景颜色,即使它是根元素。
- 元素的背景图像,即使它是它是根元素。
- 元素的内容,例如文本和图像,从下到上绘制top.
- 子元素的背景和边框。
解释重叠
在我们的示例中,当第二个 div 与第一个 div 重叠时,会发生以下绘制顺序:
- 第二个 div 的背景色绘制在第一个 div 的背景。
- 第一个 div 的内容被绘制。
- 第二个 div 的内容被绘制在第一个 div 的内容之上。
自第一个 div 的内容在第二个 div 的背景之前绘制,文本似乎位于绿色背景上方,从而产生第二个 div 在两者之间滑动的错觉
更改行为
虽然默认绘制顺序可能会导致这种情况,但可以通过将重叠元素的不透明度设置为值小于 1。这会在内容绘制步骤之前触发不透明度绘制步骤,确保重叠元素的背景出现在其下方内容。
在我们的示例中,向第二个 div 添加 opacity: 0.9999 会产生预期的行为,其中绿色背景完全覆盖第一个 div 的内容。
参考
CSS绘制顺序的详细解释可以参考W3C官方文档:
https://www.w3.org/TR/css-backgrounds-3/#box-painting
以上是为什么负边距的 Div 看起来会在另一个 Div 的内容和背景之间滑动?的详细内容。更多信息请关注PHP中文网其他相关文章!

文章讨论了CSS FlexBox,这是一种布局方法,用于有效地对齐和分布响应设计中的空间。它说明了FlexBox用法,将其与CSS网格进行了比较,并详细浏览了浏览器支持。

本文讨论了使用CSS创建响应网站的技术,包括视口元标签,灵活的网格,流体媒体,媒体查询和相对单元。它还涵盖了使用CSS网格和Flexbox一起使用,并推荐CSS框架

本文讨论了CSS盒装属性,该属性控制了元素维度的计算方式。它解释了诸如Content-Box,Border-Box和Padding-Box之类的值,以及它们对布局设计和形式对齐的影响。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境