Ich versuche eine sehr einfache Projekt Artikel-Liste/Fortschrittsanzeige (nicht interaktiv, nur eine statische Anzeige), die verschiedene Kategorien als Fortschrittsboxen überlagert anzeigen möchte, wie folgt:Geschwister Spannweite Verwirrung bekommen Prozentsatz der vorhergehenden Geschwister
.plan {
list-style: none;
}
.plan li {
display: block;
}
.progress a {
text-decoration: none;
}
.plan .subject {
}
.plan .progress {
background-color: #eee;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25) inset;
border-radius: 8px;
margin-bottom: 1ex;
position: relative;
display: inline-block;
}
.progress span {
height: 100%;
border-radius: 8px 0 0 8px;
display: inline-block;
}
.progress a {
padding: 2px 1ex;
display: inline-block;
}
.progress .done {
background-color: lightgreen;
}
.progress .critical {
background-color: crimson;
}
.progress .todo {
background-color: cyan;
}
<ul class="plan">
<li>
<div class="progress">
<span class="done" style="width: 55%"/>
<span class="todo" style="width: 35%"/>
<span class="critical" style="width: 25%"/>
<a href=".">1234567</a>
</div>
<span class="subject"> lorem ipsum dolor sit amet </span>
</li>
<li>
<div class="progress">
<span class="done" style="width: 80%"/>
<span class="todo" style="width: 50%"/>
<a href=".">89</a>
</div>
<span class="subject"> phasellus elit orci, suscipit et eros eu, consequat viverra sem. </span>
</li>
</ul>
In dem obigen Beispiel ist meine Absicht Breite der verschachtelten Elemente der span
div.progress
, zum einstellen der Prozentsatz der div.progress
Kastengröße selbst zu sein. Wie jedoch in der Ausgabe zu sehen ist, setzen sukzessive span
s ihre Breite auf den Prozentsatz ihrer vorhergehenden Geschwister. Zum Beispiel im ersten Artikel ist die 55%
die der ID-Box, wie vorgesehen. Das folgende 35%
ist das der 55%
, das ist .55*.35 = 19.25%
der ID-Box), und die dritte 25%
Breite ist .1925*.25=~5%
der ID-Box.
Wie kann ich die Geschwisterspanne als den Prozentsatz des Elternteils div bekommen?
Alternative Layout Vorschläge würden sehr geschätzt werden. Das Ziel ist hier, einzelne Unterkategorien (z. B. critical
, todo
, done
) als Prozentsatz einer Gesamtsumme anzuzeigen, deren Größe auf dem Element basiert, das sie überlagern (hier das Element <a>
mit der Element-ID). Zum Beispiel könnten sie als einzelne Boxen dimensioniert werden, die als 25%
, 10%
und 20%
und Rest 45%
(grau) als Standard, jeweils für den ersten Artikel, ausgerichtet sind.
dank Ihrem Beispiel gut funktionieren! Ich bin jedoch verwirrt. Die span-Tags sind auch in meiner Version nicht verschachtelt und geschlossen (leeres Tag). Also, was genau ist das Problem? – Nick
auch, mit einer festen "100px" Größe für die Fortschrittsbox ist nicht ideal: der Text innerhalb der Box könnte von variabler Länge sein. Fügen Sie der ID in Ihrem Beispiel weitere Ziffern hinzu und sehen Sie sich das Problem an ... – Nick
@Nick Für Text mit variabler Länge verwenden Sie width: auto anstelle von Pixeln - Ich habe den CodePen mit einer funktionierenden Demo aktualisiert. – sol