要实现父容器中两个子 div
的居中重叠显示,可以使用 CSS 的 position
属性和 flexbox
布局。以下是具体的实现步骤:
flexbox
实现居中首先,将父容器设置为 flex
布局,并使用 justify-content
和 align-items
属性将子元素居中。
position: absolute
实现重叠然后,将两个子 div
设置为 position: absolute
,这样它们就可以重叠在一起。
<div class="parent">
<div class="child1">子元素1</div>
<div class="child2">子元素2</div>
</div>
.parent {
display: flex;
justify-content: center; /* 水平居中 */
align-items: center; /* 垂直居中 */
position: relative; /* 父容器设置为相对定位 */
width: 300px; /* 父容器宽度 */
height: 200px; /* 父容器高度 */
border: 1px solid #000; /* 边框,方便查看 */
}
.child1, .child2 {
position: absolute; /* 子元素设置为绝对定位 */
top: 50%; /* 垂直居中 */
left: 50%; /* 水平居中 */
transform: translate(-50%, -50%); /* 精确居中 */
}
.child1 {
background-color: rgba(255, 0, 0, 0.5); /* 半透明红色背景 */
width: 150px;
height: 100px;
}
.child2 {
background-color: rgba(0, 0, 255, 0.5); /* 半透明蓝色背景 */
width: 100px;
height: 150px;
}
父容器 (parent
):
display: flex;
将父容器设置为 flex
布局。justify-content: center;
和 align-items: center;
将子元素在水平和垂直方向上居中。position: relative;
使得子元素的 position: absolute;
相对于父容器定位。子元素 (child1
和 child2
):
position: absolute;
使得子元素可以重叠。top: 50%;
和 left: 50%;
将子元素的左上角定位到父容器的中心。transform: translate(-50%, -50%);
将子元素的中心点移动到父容器的中心,从而实现精确居中。div
会在父容器的中心重叠显示。z-index
属性来控制哪个子元素在上层显示。如果你希望其中一个子元素在上层显示,可以为其设置 z-index
属性:
.child1 {
z-index: 1; /* 使 child1 在上层显示 */
}
这样,child1
就会覆盖在 child2
之上。