背景渐变为双色调纯色 - 一种颜色宽度(以 px 为单位)
Background gradient as two tone solid color - one color width in px
div {
height: 50px;
width: 100%;
background-image: linear-gradient(to right, white 50%, red 46px);
}
body {
padding: 20px;
}
<div></div>
我正在尝试使用线性渐变作为 div
中的双色调纯色背景。
div
可以是任何宽度,我希望其中一种颜色具有以像素为单位的指定宽度 - 而另一种颜色可以填充总宽度的剩余部分。这可能吗?
喜欢:
div {
background-image: linear-gradient(to right, white auto, red 46px);
}
你可以试试这个:
使用第一种颜色所需的值(此处为 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);
}
<div class="first">
</div>
<div class="second">
</div>
你可以简单地选择:
首先使用固定背景颜色然后只需将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;
}
<div>
Test
</div>
希望这对您有所帮助。
我认为这是使用css variables的好时机,我们可以将一个变量设置为断点,并且只需要在移动梯度时更新那个变量。
div {
--gradient-break: calc(100% - 46px);
height: 50px;
background-image: linear-gradient(to right, darkgreen var(--gradient-break), tomato var(--gradient-break));
}
<div></div>
你可以用这个方法制作一个Javascript可控的进度条。
let progressCounter = 0;
setInterval(function() {
if (progressCounter >= 100) {
progressCounter = 0;
} else {
progressCounter++;
}
document.querySelector('.progress').style.setProperty('--gradient-break', progressCounter + "%")
}, 50)
div.progress {
--gradient-break: 0%;
height: 50px;
background-image: linear-gradient(to right, darkgreen var(--gradient-break), tomato var(--gradient-break));
}
<div class="progress"></div>
我正在使用 document.querySelector('.progress').style.setProperty('--gradient-break',progressCounter+"%")
设置进度百分比,css 负责其余部分。
希望这对您有所帮助。
div {
height: 50px;
width: 100%;
background-image: linear-gradient(to right, white 50%, red 46px);
}
body {
padding: 20px;
}
<div></div>
我正在尝试使用线性渐变作为 div
中的双色调纯色背景。
div
可以是任何宽度,我希望其中一种颜色具有以像素为单位的指定宽度 - 而另一种颜色可以填充总宽度的剩余部分。这可能吗?
喜欢:
div {
background-image: linear-gradient(to right, white auto, red 46px);
}
你可以试试这个:
使用第一种颜色所需的值(此处为 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);
}
<div class="first">
</div>
<div class="second">
</div>
你可以简单地选择:
首先使用固定背景颜色然后只需将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;
}
<div>
Test
</div>
希望这对您有所帮助。
我认为这是使用css variables的好时机,我们可以将一个变量设置为断点,并且只需要在移动梯度时更新那个变量。
div {
--gradient-break: calc(100% - 46px);
height: 50px;
background-image: linear-gradient(to right, darkgreen var(--gradient-break), tomato var(--gradient-break));
}
<div></div>
你可以用这个方法制作一个Javascript可控的进度条。
let progressCounter = 0;
setInterval(function() {
if (progressCounter >= 100) {
progressCounter = 0;
} else {
progressCounter++;
}
document.querySelector('.progress').style.setProperty('--gradient-break', progressCounter + "%")
}, 50)
div.progress {
--gradient-break: 0%;
height: 50px;
background-image: linear-gradient(to right, darkgreen var(--gradient-break), tomato var(--gradient-break));
}
<div class="progress"></div>
我正在使用 document.querySelector('.progress').style.setProperty('--gradient-break',progressCounter+"%")
设置进度百分比,css 负责其余部分。
希望这对您有所帮助。