css - 为什么位置:相对会导致先前浮动的兄弟姐妹被隐藏
问题描述
我试图理解为什么在以下代码笔中: https ://codepen.io/benrhere/pen/XWRmVjr
设置位置:第二个兄弟的相对影响(隐藏)第一个兄弟的可见性(使用 Chrome 91.0.4472.124)。你可以在下面的第一个方形 div 中看到问题,而第二个方形 div 没有这个问题。唯一的区别是第二个兄弟被标记为位置:相对。似乎这将第一个兄弟元素放在堆叠顺序后面,尽管我预计应用 position: relative 只会影响其子元素的堆叠顺序,而不是其兄弟元素。
最终,我将不再使用 float: 是的,但我只是对此感到好奇。
<html>
<body>
<div class="outer">
<span class="floated">X</span>
<div id="relative">Y</div>
</div>
<hr />
<div class="outer">
<span class="floated">X</span>
<div id="notRelative">Y</div>
</div>
</body>
</html>
解决方案
元素的默认位置是静态的,但是当您为元素指定位置而不是静态时,它会给定一个 z-index。这就是为什么您的跨度低于 div 的堆栈索引的原因。
推荐阅读
- git - Git:--git-dir 将所有文件显示为丢失
- java - 使用 Angular 6 和 Spring Rest API 下载文件
- javascript - 在服务器端分页上防止来自 jquery 数据表的多个 ajax 调用
- python - Python/Pandas:读取嵌套的 JSON
- haskell - Haskell - 与数据类型匹配的模式
- mongodb - 删除内部字段数组 MongoDb 的元素
- c# - 工厂设计模式是否适用于这种情况
- phpunit - PHPUnit 代码覆盖率和外部多处理
- css - 只有一个 css 媒体查询会影响元素的样式(仅适用于 Chrome,而不是 Firefox)
- javascript - jQuery removeClass 触发,但不删除类