div {
height: 50px;
width: 100%;
background-image: linear-gradient(to right, white 50%, red 46px);
}
body {
padding: 20px;
}
<div></div>
我正试图在div
中使用线性渐变作为双色调纯色背景。
div
可以是任何宽度,我希望其中一种颜色在px中具有指定的宽度 - 另一种颜色可以填充总宽度的剩余部分。这有可能吗?
像:
div {
background-image: linear-gradient(to right, white auto, red 46px);
}
答案 0 :(得分:3)
您可以简单地使用:
首先使用固定背景颜色,然后将0
放入第二种颜色,它将填充div的其余部分。
background: linear-gradient(to right, lightgreen 19px, darkgreen 0);
这对你很好。
div {
display: inline-block;
background: linear-gradient(to right, lightgreen 19px, darkgreen 0);
width: 50%;
height: 100px;
color: white;
text-align: center;
}
&#13;
<div>
Test
</div>
&#13;
希望这有用。
答案 1 :(得分:2)
你可以试试这个:
使用第一种颜色所需的值(此处为46px),并使用较小的值作为第二种颜色(介于0和45px之间)。然后根据需要更改渐变的方向。
div.first {
height:100px;
background-image: linear-gradient(to right, red 46px, blue 40px);
}
div.second {
margin-top:10px;
height:100px;
background-image: linear-gradient(to left, red 46px, blue 0px);
}
&#13;
<div class="first">
</div>
<div class="second">
</div>
&#13;
答案 2 :(得分:0)
我认为这是使用css variables的好时机,我们可以将变量设置为断点,并且只需在移动渐变时更新该变量。
div {
--gradient-break: calc(100% - 46px);
height: 50px;
background-image: linear-gradient(to right, darkgreen var(--gradient-break), tomato var(--gradient-break));
}
&#13;
<div></div>
&#13;
您可以使用此方法制作Javascript控制的进度条。
let progressCounter = 0;
setInterval(function() {
if (progressCounter >= 100) {
progressCounter = 0;
} else {
progressCounter++;
}
document.querySelector('.progress').style.setProperty('--gradient-break', progressCounter + "%")
}, 50)
&#13;
div.progress {
--gradient-break: 0%;
height: 50px;
background-image: linear-gradient(to right, darkgreen var(--gradient-break), tomato var(--gradient-break));
}
&#13;
<div class="progress"></div>
&#13;
我使用document.querySelector('.progress').style.setProperty('--gradient-break',progressCounter+"%")
设置进度百分比,而css正在处理其余的事情。
希望这有用。