Ich habe zwei Werte, die aus einem Array I nehmen:Filterhülsen aus zwei divs gemacht Diagramm
$target = $data->data[2][32][3];
In diesem Fall $target = 9.83%
.
$clicks = $data->data[1][32][3];
In diesem Fall $clicks = 7.15%
. Ich habe ein barlike Diagramm, das von einem .outer div
gebildet wird (das das Hintergrunddiv darstellt, das div, das alle anderen enthält), ein .inner div
(der das äußere füllt ... Sie können es wie ein Bar denken, das den Prozentsatz zeigt, der abgeschlossen wird) und eine .target div
(die die gepunktete Linie/das Ziel darstellt, das das .inner div erreichen muss ... in einigen Fällen wie diesem überschreitet es das Ziel: .inner > .target
).
$target = 9.83%;
$bar_width = '200px';
$clicks = 7.15%;
$base = max($target, $clicks);
.outer,
.inner,
.target {
height: 14px;
margin-bottom: 5px;
}
.outer {
background-color: #cccccc;
width: 200px;
margin: 20px auto;
position: relative;
font-size: 10px;
line-height: 14px;
font-family: sans-serif;
}
.inner {
background-color: green;
position: absolute;
z-index: 1;
text-align: right;
width: calc(200/100 * <?php echo $base; ?>);
border-right: 2px solid black;
}
.inner:after {
content: ' 7.15%';
display: inline-block;
left: 10px;
position: relative;
height: 100%;
top: -14px;
margin-left: 17px;
}
.target {
background-color: transparent;
width: 19px;
position: absolute;
z-index: 2;
color: black;
text-align: right;
border-right: 2px dotted black;
}
.target:after {
content: 'Target: 9.83%';
display: inline-block;
left: 28px;
position: relative;
height: 100%;
top: 14px;
margin-left: -60px;
}
<div class="outer">
<div class="target" style="width: calc(<?php echo $bar_width; ?>/100 * (<?php echo $target; ?>/<?php echo $base; ?> * 100))">
</div>
<div class="inner" style=" width: calc(<?php echo $bar_width; ?>/100 * (<?php echo $clicks; ?>/<?php echo $base; ?> * 100))">
</div>
</div>
, dass mein Problem ist, also nachdem das Ziel der innere div vollständig die äußere div füllen sollte nicht überschritten wird.
Das Problem ist, dass das Array ich aus den Werten immer bin, die Werte als 9,83% aufweist. Also $ Ziel = $ Daten-> Daten [2] [32] [3]; = 9.83% – Alphonse
'$ target = str_replace ("% "," "," 9.83% ");' wird dieses Problem umgehen! –
Das Array ist dynamisch, daher ist der Wert nicht immer 9,83%, leider – Alphonse