Но, как вариант - можно извратиться с псевдоэлементами
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
div{
width: 100px;
height: 50px;
background-color: #321;
}
div:after{
display: block;
width: 100%;
height: 100%;
content: ' ';
}
div:hover::after{
background-color: rgba(255,255,255,0.5);
}
div:active::after{
background-color: rgba(000,000,000,0.5);
}
</style>
</head>
<body>
<div></div>
</body>
</html>