html - 为绝对位置元素应用相对位置。(相对于子 div)
问题描述
我希望div2
成为relative
,div3
但由于它已经定位absolute
到div1
(相对),我不知道如何实现这一点。
.div1 {
position: relative;
}
.div2 {
position: absolute;
}
.div3 {
position: absolute;
}
<div class="div1">
<div class="div2">
<div class="div3">
</div>
</div>
</div>
解决方案
如果我理解你想要的是将 div3 相对于 div2 定位,你仍然可以这样做,因为绝对定位元素将引用具有绝对位置的父元素。
具有位置的元素:绝对;相对于最近的定位祖先定位(而不是相对于视口定位,如固定)。
然而; 如果绝对定位元素没有定位的祖先,它使用文档正文,并随着页面滚动移动。
注意:“定位”元素是指其位置除静态之外的任何元素。
我包含了一个片段来可视化它。
.div1{
height:150px;
border:1px solid black;
position:relative;
}
.div2{
height:80px;
position:absolute;
top:20px;
border:1px solid blue;
}
.div3{
position:absolute;
top:5px;
height:30px;
border:1px solid red;
}
div{
width:80px;
}
<div class="div1">
<div class="div2">
<div class="div3">
</div>
</div>
</div>
推荐阅读
- php - PHP 文件下载无法识别 Chrome 和 Edge 中的文件类型
- mulesoft - 与 Cloudhub 相比,MuleSoft RTF 架构和对内核的理解
- ffmpeg - ffmpeg 速度处理时间
- sql - 在 SQL 查询中返回十进制值
- javascript - 函数不重复所有 if 语句
- java - JComboBox 包含来自文件 Java 中索引位置的数据
- python - python - 在列中查找重复项,为该重复项替换另一列中的值
- java - JPA ZonedDateTime 值在夏令时更改附近读取
- node.js - Node.js 流:何时调用 _writev?
- flutter - 使用animationController的空白白屏