一、CSS盒模型基础
首先,我们需要了解CSS盒模型的基本概念。CSS盒模型是由四个部分组成的:内容(Content)、内边距(Padding)、边框(Border)和外部边距(Margin)。
- 内容(Content):盒子的实际内容,如文本或图片。
- 内边距(Padding):盒子内容与边框之间的空间。
- 边框(Border):盒子周围的线条。
- 外部边距(Margin):盒子与周围元素之间的空间。
每个盒子都有其自己的盒模型,且默认情况下,盒子的内容、内边距、边框和外部边距都是可见的。
二、CSS层叠规则
在多个盒子叠加时,CSS层叠规则决定了盒子的显示顺序。以下是一些基本的层叠规则:
- 层叠上下文:层叠上下文是由文档流、定位元素、浮动元素和根元素等组成的。在层叠上下文中,元素的层叠顺序是由其z-index属性决定的。
- z-index属性:z-index属性用于控制元素的层叠顺序。当两个元素在同一层叠上下文中时,z-index值较大的元素会显示在z-index值较小的元素之上。
- 层叠上下文规则:当两个元素在同一层叠上下文中时,z-index值并不是唯一决定层叠顺序的因素。还需要考虑以下规则:
- 普通流中的元素会按照其文档流顺序进行层叠。
- 定位元素会根据其定位方式(绝对定位、相对定位等)进行层叠。
- 浮动元素会根据其浮动方向(水平或垂直)进行层叠。
三、图片层叠示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>图片层叠示例</title>
<style>
.box {
position: relative;
width: 300px;
height: 200px;
overflow: hidden;
}
.box img {
width: 100%;
height: auto;
position: absolute;
z-index: 1;
}
.box img:nth-child(2) {
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
z-index: 2;
}
</style>
</head>
<body>
<div class="box">
<img src="image1.jpg" alt="图片1">
<img src="image2.jpg" alt="图片2">
</div>
</body>
</html>