使用更少的不透明度增加背景颜色

时间:2018-11-12 06:21:01

标签: html css css3 sass less

我需要随着逐渐增加的不透明度来改变所有孩子的背景色。子级数是动态的,将异步插入或删除。有没有什么解决方案可以在css或更少的范围内达到相同的效果?

ul li {
  list-style: none;
  font-size: 16px;
  text-align: center;
  font-weight: bold;
  margin: 3px 0;
}

ul li:nth-child(1){
  background-color: rgba(0,0,255, 0.1);
}

ul li:nth-child(2){
  background-color: rgba(0,0,255, 0.2);
}

ul li:nth-child(3){
  background-color: rgba(0,0,255, 0.3);
}

ul li:nth-child(4){
  background-color: rgba(0,0,255, 0.4);
}

ul li:nth-child(5){
  background-color: rgba(0,0,255, 0.5);
}
<ul>
  <li>A</li>
  <li>B</li>
  <li>C</li>
  <li>D</li>
  <li>E</li>
</ul>

1 个答案:

答案 0 :(得分:3)

添加了这些样式

ul li {
 box-shadow: 2px 2px white, 0px 2px white;
}

ul {
  padding: 0;
  background-image: linear-gradient(rgba(0, 0, 255, 0.1), rgba(0, 0, 255, 0.8));
}

不要给每个li着色,而是给ul提供背景渐变,并使用box-shadow创建盒效应。

ul li {
  list-style: none;
  font-size: 16px;
  text-align: center;
  font-weight: bold;
  margin: 3px 0;
  box-shadow: 2px 2px white, 0px 2px white;
}

ul {
  padding: 0;
  background-image: linear-gradient(rgba(0, 0, 255, 0.1), rgba(0, 0, 255, 0.8));
}
<ul>
  <li>A</li>
  <li>B</li>
  <li>C</li>
  <li>D</li>
  <li>E</li>
  <li>F</li>
  <li>G</li>
  <li>H</li>
</ul>