私は非常に単純なプロジェクト項目リスト/進行状況表示(非対話、静的表示)を試みています。上記の例で兄弟スパン幅の混乱が前の兄弟の割合を取得
.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>
、私の意図はdiv.progress
ボックスサイズ自体の割合であることが、div.progress
のネストされたspan
要素の幅を設定することです。しかし、出力に見られるように、連続するspan
は、幅を前の兄弟の割合に設定します。 など。最初の項目では、55%
は意図したとおりにIDボックスのものです。次の35%
はidボックスの.55*.35 = 19.25%
である55%
のものであり、idボックスの第3の25%
の幅は.1925*.25=~5%
である。
兄弟スパンを親divの割合にするにはどうすればよいですか?
代替レイアウトの提案は非常に高く評価されます。ここでの目的は、オーバーレイしたアイテムに基づいたサイズ(ここでは<a>
のアイテムIDを持つエレメント)を合計したもののパーセンテージとして、個々のサブカテゴリ(例:critical
、todo
、done
)をパーセンテージで表示することです。たとえば、最初の項目では、それぞれ25%
,10%
、20%
、残りの部分は45%
(灰色)に整列する個々のボックスとしてサイズ指定できました。
感謝!私は困惑している。スパンタグは、私のバージョンではネストされておらず、閉じられています(空のタグ)。だから、問題は何か? – Nick
また、進捗ボックスの固定「100px」サイズを持つことは理想的ではありません。ボックス内のテキストは可変長である可能性があります。 – Nick
@Nick可変長テキストの場合は、ピクセルの代わりにwidth:autoを使用してください - 私は動作するデモでcodepenを更新しました。 – sol