進捗バーにマイルストーンを表示するために行を追加しようとしていますが、完璧になるのに少し問題があります。常にオフセットがあるようだし、何が間違っているのか把握できない。下のプログレスバーは40%に設定されています。最初のマイルストーンは40%ですが、プログレスバーにも表示されていない場合は100になります。私はこれを正確にする方法が必要です。助言がありますか?プログレスバーがオフセットされているようです
.progress-checkpoint {
float: left;
position: absolute;
background-color: red;
width: 1px;
height: 29px;
margin-top: -5px;
color: black;
overflow: visible;
}
.progress-checkpoint>div {
margin-left: -19px;
margin-top: -19px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<div style="padding:50px">
<div class="progress">
<div class="progress-bar progress-bar-warning progress-bar-striped active" role="progressbar" aria-valuenow="45" aria-valuemin="0" aria-valuemax="100" style="width: 40%"><div class="progress-checkpoint" style="left: 40%;">
<div>40</div>
</div><div class="progress-checkpoint" style="left: 53%;">
<div>53</div>
</div><div class="progress-checkpoint" style="left: 67%;">
<div>67</div>
</div><div class="progress-checkpoint" style="left: 88%;">
<div>88</div>
</div><div class="progress-checkpoint" style="left: 100%;">
<div>100</div>
</div> </div>
</div>
</div>
絶対位置は、50pxの左と右のパディングを持つoutter divに依存しているため、.progress-checkpointセレクタにmargin-left-50pxを追加できます。 –
@BenSewardsは、問題自体を修正するのではなく、マイナスのマージンを伴う明白な問題を回避することは、むしろ悪いコーディングです。一般的にマイナスマージン悪魔。あなたはそれを使用することができ、それは動作しますが、いつかそれはあなたの魂を奪い、すべてを壊すでしょう。 私は適切な解決策(アライメントゼロを修正しています)を以下に追加しました。 –
これは私のコメントで、絶対的な位置付けが間違ったdivタグに依存していると説明した理由です。明らかにあなたは答えに私を打ち負かしました:) –