javascript - 不能重叠兄弟元素

标签 javascript html css

<分区>

我的定位有问题,我想把 .sibling-child 放在 .parent 上而不修改当前的 z-index。有没有办法在 CSS 中做到这一点?

这里是有问题的 jsfiddle。 http://jsfiddle.net/8hb6xgLj/1/

.parent {
  width: 300px;
  height: 100px;
  background: #333;
  position: relative;
  z-index: 10;
}

.child {
  top: 60px;
  position: absolute;
  width: 50px;
  height: 80px;
  background: red;
}

.sibling {
  width: 300px;
  height: 100px;
  background: #ccc;
  position: relative;
  z-index: 9;
}

.sibling-child {
  top: 10px;
  position: absolute;
  width: 70px;
  height: 80px;
  background: blue;
}
<div class="parent">
  <div class="child">

  </div>
</div>
<div class="sibling">
  <div class="sibling-child">

  </div>
</div>

最佳答案

在您的示例中,两个 div 元素都使用不同的 z-index 定位,这意味着它们按照它们在标记中出现的顺序堆叠,第一个声明的元素具有最高的堆叠索引。

因此,根据该定义,.sibling-child 不可能出现在 .parent 之上。

参见 W3C specification on stacking context了解更多信息。特别注意第 9 点:

Stacking contexts formed by positioned descendants with z-indices greater than or equal to 1 in z-index order (smallest first) then tree order.

关于javascript - 不能重叠兄弟元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53347429/

上一篇:html - 如何在 jQuery Mobile 中编辑上传文件小部件的占位符?

下一篇:css - 样式组件局部变量

相关文章:

javascript - 使用 JSX 在 ReactJs 中创建类

javascript - 如何在没有 if else 语句的情况下比较两个值

html - 为什么 div 的子元素会改变 body 和 html 之间的边距?

javascript - 如何在先决条件检查后显示对话框?

javascript - 将文本框中的内容转换为 HTML

javascript - 告诉 PHP 后端浏览器已从前端 Angular 关闭

html - 为什么我的 CSS `ul li ~ li` 没有调整我的 HTML 元素之一?

html - 在标题中轻松创建水平导航栏

php - 停止 WordPress 自动显示 <p></p> 标签

css - 如何在多个 ID 或类上应用 CSS 元素属性