我們先上程式碼
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
.wrap{
width: 500px;
height: 500px;
border: 1px solid red;
}
.same{
width: 100px;
height: 100px;
}
.one{
background: green;
}
.two{
background: red;
margin: -40px 0 0 40px;
}
.three{
background: blue;
margin: -40px 0 0 80px;
}
</style>
</head>
<body>
<div class="wrap">
<div class="same one"></div>
<div class="same two"></div>
<div class="same three"></div>
</div>
</body>
</html>
複製程式碼
然後我們看一下效果
然後我們修改以下樣式 .two{
background: red;
margin: -40px 0 0 40px;
opacity: 0.5;
}
複製程式碼
然後我們看一下效果
我們發現第二個div,覆蓋了第一個和第三個,就好像設定了z-index一樣,我們在設定以下樣式.three{
background: blue;
margin: -40px 0 0 80px;
postion:relative;
z-index:`100;
}
複製程式碼
我們在重新看一下效果
又恢復了正常的層級關係 然後我們看一下rgba設定透明度和opacity相同嗎 設定如下樣式 .one{
background: green;
}
.two{
background: rgba(0, 0, 0, 0.5);
margin: -40px 0 0 40px;
}
.three{
background: blue;
margin: -40px 0 0 80px;
}
複製程式碼
然後我們看一下效果
我們發現rgba不存在這種問題 這個問題最近準備寫一個遮屏效果,然後在遮屏元素中有一個子元素,子元素上顯示相關內容,為遮屏元素設定opacity,然後發現一隻遮蓋子元素,按理說設定z-index的父元素的層級總是比子元素低,除非子元素的z-index為負數,然後才發現是opacity在搞鬼,遮屏效果圖 我並不知道這個原理是什麼,如果有什麼說錯的地方,請各位大神指出,第一次寫文章