我有一个进度条,表示正在批准的邮件的各个阶段。该消息可以部分批准,并需要第二次批准。因此,我需要代表以下内容,只有一半的图标为绿色。这可能吗?
<div class="stepwizard-step">
<button type="button" class="btn btn-success btn-circle" disabled="disabled">1</button>
<p>partially approved/approved</p>
</div>
修改
修改 我正在使用Bootstrap 3.1.1
修改 亚历克斯,几乎在那里,只需要向前移动文本:
css是:
.partially-approved {
border-radius: 50%;
background: #FFF;
border: 1px solid #000;
position: relative;
overflow: hidden;
}
.partially-approved:before {
background-color: #5cb85c;
content: " ";
position: absolute;
left: 0;
top: 0;
right: 50%;
height: 100%;
}
正在应用:
$('button#stage3').attr("class", "btn partially-approved btn-circle");
答案 0 :(得分:5)
我在这里为你做了一个简单的例子:
CSS:
#circle{
width: 2em;
height: 2em;
border-radius: 1em;
border: 1px solid black;
overflow: hidden;
}
#progress{
position: relative;
width: 50%;
height: 100%;
background-color: green;
}
使用此功能,您还可以使用javascript编辑它,只需将进度宽度设置为100%
即可答案 1 :(得分:4)
也许是线性渐变
.approved {
background-color: #bada55;
}
.approval_awaited {
background: linear-gradient(to right, #bada55 0%, #bada55 50%,rgba(255,255,255,1) 51%,rgba(255,255,255,1) 100%); /* W3C */
}
答案 2 :(得分:3)
使用:在CSS语法之后,您可以执行以下操作:
.btn {
border-radius: 50%;
background: #FFF;
border: 1px solid #000;
padding: 5px 5px 5px 15px;
position: relative;
overflow: hidden;
}
.btn:before {
background: green;
content: " ";
position: absolute;
left: 0;
top: 0;
right: 50%;
height: 100%;
}
这使用了你所拥有的相同HTML,只需要一点点CSS
编辑:将填充更新为偏离中心文本一点。见http://jsfiddle.net/jY9fu/1/
第二次编辑:在不添加额外元素的情况下,您可以使用以下内容属性:在诸如http://jsfiddle.net/jY9fu/2/之后的psuedo元素之后 - 但是如果它是动态的,则需要添加步骤的数据属性
答案 3 :(得分:1)
我知道我的答案有点迟了......但我对JSfiddle的反应很慢。我的答案是使用不同的方法,因为您需要<span>
来获取有关伪元素的数字。但背景渐变的答案是最好的imo。如果你可以使用它,我会这样做。
这是一个想法:
.progress
{
margin:0;
padding:0;
list-style: none;
}
.progress > li
{
margin: 0 10px 0px 0px;
padding: 0;
border-radius: 50px;
padding: 5px 10px;
line-height:1em;
background-color: gray;
color: #FFF;
float: left;
position: relative;
overflow: hidden;
}
.progress > li:not(.half).done,
.progress > li.done:before
{
background-color: green;
}
.progress > li:before
{
bottom:0;
top: 50%;
left:0;
right:0;
content:"";
position: absolute;
}
.progress > li:last-of-type
{
margin-right: 0
}
.progress > li > span
{
position: relative;
}
使用此HTML:
<ul class="progress">
<li class="done"><span>1</span></li>
<li class="done"><span>2</span></li>
<li class="half done"><span>3</span></li>
<li class=""><span>4</span></li>
<li class=""><span>5</span></li>
</ul>
答案 4 :(得分:0)
我会说你的图标分成两个透明的部分,并根据批准状态改变每个部分的颜色。
或相互使用两个图标,一个是透明的并显示给用户,另一个是彩色的,它的不透明度为0,然后根据批准状态将其宽度设置为50%或100%。