使用负边距导致的文字和背景分离的现象

现象描述

.div1 {
  background: red;
}
.div2 {
  margin-top: -15px;
  color: #fff;
  background: green;
}

1
2

如上代码,会发生反直觉现象:
div2的背景色盖住了div1的背景色,但是div1的文字却在div2的背景色之上
使用负边距导致的文字和背景分离的现象_第1张图片

发生该现象的原因?

由于使用负边距时,元素仍然在正常的文档流中,并不存在元素级别的覆盖。
此时它们在同一层级,按照默制顺序绘制,背景和边框在最底层,内联元素(文字)在最上层,所以就有了上述反直觉的现象。

如何解决?

使用定位就行了,他们不在一个层级,就不会有这个问题了

你可能感兴趣的:(使用负边距导致的文字和背景分离的现象)