我想在HTML中制作一些统计条形图,使用两种不同的颜色在同一条形图中表示两个不同的值,例如:从10个问题的考试中,6个问题得到正确回答,4个错误。在栏中应该出现60%的绿色和另外40%的红色。
我一直在考虑首先显示红色的,然后是绿色的,所以它覆盖了下半部分,如下所示:
风格
.bar1{
width:40px;
background-color:#A55541;
position:left;
}
.bar2{
width:40px;
background-color:#CA804F;
position:left;
}
HTML
<div style="height:<?=$max ?>px; margin-top:10px;" class="bar1"</div>
<div style="height:<?=$max-($mistakes*$scale) ?>px; margin-top:10px;" class="bar2"</div>
但它不起作用。有谁知道怎么解决?我一直在寻找类似的问题,但我找不到它。
答案 0 :(得分:1)
您可以尝试这样做:
<强> PHP 强>
<?php
$max = 300;
$mistakes = 100;
$scale = 1;
?>
<强> HTML 强>
<div style="height:<?=$max ?>px;" class="bar1"></div>
<div style="height:<?=$max-(mistakes*scale) ?>px;" class="bar2"></div>
<强> CSS 强>
.bar1{
width:40px;
background-color:red;
position: absolute;
}
.bar2{
width:40px;
background-color:green;
position: fixed;
}
答案 1 :(得分:1)
要使此代码正常工作,请创建另一个类,如:
.container {
width : 40px;
height: 100px;
position: relative
}
使bar1位置相对,bar2位置绝对,底部:0px和z-index:100。现在在容器类中添加两个div并在php中设置bar2'top'而不是height。
答案 2 :(得分:0)
这匹配你想要的吗?
<?php
$max = 100;
$mistakes = 40;
$scale = 1;
?>
<html>
<style>
.bar1{
width:40px;
background-color:green;
float:left;
z-index:1;
position: absolute;
}
.bar2{
width:40px;
background-color:red;
float:left;
z-index:2;
position: absolute;
}
</style>
<div style="height:<?php echo $max ?>px;" class="bar1"></div>
<div style="height:<?php echo $max -($mistakes*$scale) ?>px;" class="bar2"></div>
</html>
我添加了一个回声并摆脱了边缘顶部,因为它弄乱了我认为你想要的布局。