<div style="width:300px;height:200px" class=""></div>
// 只添加一个伪元素 且不使用css中的定位 能不能让伪元素覆盖这个元素
覆盖: 就是这个伪元素在这个div之上,且高宽一样
<div style="width:300px;height:200px" class=""></div>
// 只添加一个伪元素 且不使用css中的定位 能不能让伪元素覆盖这个元素
覆盖: 就是这个伪元素在这个div之上,且高宽一样
基本原理就是使用 ::afeter 或 ::before 作为遮罩层,设定为绝对定位,宽高要能相对于被遮罩层保持一致,所以还需被遮罩层(#testdiv)的定位设置为 position:relative。
以下是完整代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>测试用伪类遮罩</title>
<link rel="stylesheet" href="">
<style>
#testdiv::after {
content:'';
position:absolute;
background:#2f2f2f;
width: 100%;
height: 100%;
opacity: 0.5;
z-index:1;
}
</style>
</head>
<body>
<div style="width:300px;height:200px; background-color: red; position: relative;" class="" id="testdiv"></div>
</body>
</html>
4 回答949 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答1.6k 阅读
1 回答884 阅读✓ 已解决
1 回答706 阅读✓ 已解决
3 回答730 阅读
如果里面没有内容的话,可以直接使用

width:100%;height100%;
这样来做。如果里面有一些内容,需要用伪类来覆盖,那么就需要用到

position:absolute
了。