CSS - 悬停时颜色未知

sim*_*meg 21 html css

我随机地将颜色生成盒子,50x50px当我将它们悬停时,我希望它们变得更暗,但保持相同的颜色.

我尝试过li:hover用透明度设置为深色

background-color: rgba(91, 91, 91, 0.51) !important;
Run Code Online (Sandbox Code Playgroud)

但它看起来不太好,它使整个<li>(我指的是盒子)在悬停时变得透明.

我该如何实现这一目标?

这是一个Plunker.

Sco*_*ott 22

对不起,不可能只更改alpha.您必须为每个类指定红色,绿色和蓝色值.

但是还有另一种方法可以在这里得到解答,我将在下面复制:https: //stackoverflow.com/a/16910152/1026017

这是一个演示:http: //codepen.io/chrisboon27/pen/ACdka

选项1:::在psuedo-element之前:

.before_method{
  position:relative;
}
.before_method:before{
  display:block;
  content:" ";
  position:absolute;
  z-index:-1;
  background:rgb(18, 176, 41);
  top:0;
  left:0;
  right:0;
  bottom:0;
  opacity:0.5;
}
.before_method:hover:before{
  opacity:1;
}
Run Code Online (Sandbox Code Playgroud)

选项2:白色gif叠加:

.image_method{
  background-color: rgb(118, 76, 41);
  background-image: url(https://upload.wikimedia.org/wikipedia/commons/f/fc/Translucent_50_percent_white.png)
}
.image_method:hover{
  background-image:none;
}
Run Code Online (Sandbox Code Playgroud)

选项3:Box-shadow方法(gif方法的变体 - 可能存在性能问题):

.shadow_method{
  background-color: rgb(18, 176, 41);
  box-shadow:inset 0 0 0 99999px rgba(255,255,255,0.2);
}
.shadow_method:hover{
  box-shadow:none;
}
Run Code Online (Sandbox Code Playgroud)

  • 很好的回答,谢谢.我发现反转这个方法很有用也很简单:不使用任何其他任何东西而不悬停,并且在悬停时使用:box-shadow:inset 0 0 0 99999px rgba(128,128,128,0.2).这对我来说是必要的,因为我的行交替白色和浅灰色,所以原来的答案没有改变白色. (3认同)
  • Darn,你几秒钟就打败了我!:P (2认同)