2つの方法が考えられます。
2 番目の背景を要素自体ではなく、完全に覆うように絶対配置された疑似要素に追加できますli
。ただし、3 つ以上のクラスと背景に対してこれを実行したい場合は、2 つの疑似要素 (:before
と:after
) しか持てないため、この方法は機能しません。
または、最初の背景を 2 番目のクラスに追加することもできます。
デモ
どちらの場合も、HTML は次のようになります。
<li class="first second"></li>
最初のケースに関連する CSS:
li {
background-repeat: no-repeat;
background-size: 50%;
}
.first {
background-image: linear-gradient(rgba(102,37,93,.95) 50%, transparent 50%);
background-position: 50% 0;
}
.second {
position: relative;
}
.second:after {
position: absolute;
top: 0; right: 0; bottom: 0; left: 0;
background-image: radial-gradient(rgba(255,255,255,.2), rgba(255,0,0,.9));
background-position: 100% 50%;
background-repeat: no-repeat;
background-size: 50%;
content: '';
}
...そして2番目のケースでは:
li {
background-repeat: no-repeat;
background-size: 50%;
}
.first {
background-image: linear-gradient(rgba(102,37,93,.95) 50%, transparent 50%);
background-position: 50% 0;
}
.second {
background-image: radial-gradient(rgba(255,255,255,.2), rgba(255,0,0,.9)),
linear-gradient(rgba(102,37,93,.95) 50%, transparent 50%);
background-position: 100% 50%, 50% 0;
}