.surf_bar_container {
width: 100%;
background-color: #ddd;
margin: 10px;
margin-bottom: 30px;
box-shadow: 0px 10px 23px #888888;
}
.surf_bar {
text-align: right;
background: linear-gradient(to right, green, salmon);
line-height: 40px;
}
p {
padding-right: 10px;
}

<div class="surf_bar_container">
<div class="surf_bar" style="width:93%;">
<p>93%</p>
</div>
</div>
&#13;
我正在设置它的宽度服务器端(在这种情况下,我只是硬编码93%
)。但有可能让它越接近100%我越接近绿色越接近0%它会得到吗?
答案 0 :(得分:1)
您可以将flexbox用于此目的。根据我对您的问题的理解,您希望渐变为条宽的100%,但希望根据百分比值屏蔽部分渐变。在这种情况下,您需要:
.surf_bar_container
本身.surf_bar
标记将保持不变display: flex
,并使用::after
.surf_bar
伪元素,该元素将占用flex: auto
未占用的剩余宽度
CSS3 flexbox module is quite widely supported among browsers。对于那些使用传统flexbox规范的人来说,该解决方案仍然可行,因为它是flexbox的一个非常基本的属性。
以下概念验证:
.surf_bar_container {
width: 100%;
background-image: linear-gradient(to right, green, salmon);
margin: 10px;
margin-bottom: 30px;
box-shadow: 0px 10px 23px #888888;
display: flex;
}
.surf_bar_container::after {
content: '';
background-color: #ddd;
flex: auto;
}
.surf_bar {
text-align: right;
line-height: 40px;
}
p {
margin: 0;
padding-right: 10px;
}
<div class="surf_bar_container">
<div class="surf_bar" style="width:15%;">
<p>15%</p>
</div>
</div>
<div class="surf_bar_container">
<div class="surf_bar" style="width:85%;">
<p>85%</p>
</div>
</div>
答案 1 :(得分:0)
你可以在两者之间使用多种颜色,我希望这可以是你想要的。如果您不喜欢它们,请忽略颜色,您可以使用自己的颜色十六进制值。
<强> Check the updated fiddle 强>
.surf_bar_container {
width: 100%;
background-color: #ddd;
margin: 10px;
margin-bottom: 30px;
box-shadow: 0px 10px 23px #888888;
}
.surf_bar {
text-align: right;
background: linear-gradient(to right, green , lightgreen, salmon, red);
line-height: 40px;
}
p {
padding-right: 10px;
}
希望这有帮助
答案 2 :(得分:0)
function barSizeChange(){
var div_height1 = $(".surf_bar_container”).width();
var div_height2 = $(".surf_bar”).width();
if(div_height2 > .6*div_height1){
$(".surf_bar").css({ "background": "linear-gradient(to right,
green , green)"})
}
}
jQuery检查...的宽度。 希望这就是你想要的。