こんにちは。
ゆうやです!
本記事では、
「Webサイトのお問い合わせページなどで進捗状況を視覚的にわかりやすくしたい!」
「入力画面、確認画面、完了画面で進捗状況をわかりやすくしたい!」
という方に向けてCSSで作る進捗バーを紹介します!
CSSでプログレスバーを円形で作る方法
プログレスバー完成イメージ
1,2の箇所は用途に応じて、「入力」「確認」などと変更してくださいませ〜
実際に確認したい方はこちらのデモページよりご覧になってください。
プログレスバーのHTML
「2」もしくは「完了」ブロックに赤色でスタイリングしたい場合は該当の親要素と子要素に「isActive」クラスを付与してください!
index.html
<div class="Group">
<div class="Group-Bar"></div>
<div class="Group-Item isActive">
<div class="Group-Item-CircleOuter Circle Shapeborder isActive">
<div class="Group-Item-CircleInner Circle Shapeborder isActive"></div>
</div>
<p class="Group-Item-Text">1</p>
</div>
<div class="Group-Item">
<div class="Group-Item-CircleOuter Circle Shapeborder">
<div class="Group-Item-CircleInner Circle Shapeborder"></div>
</div>
<p class="Group-Item-Text">2</p>
</div>
<div class="Group-Item">
<div class="Group-Item-CircleOuter Circle Shapeborder">
<div class="Group-Item-CircleInner Circle Shapeborder"></div>
</div>
<p class="Group-Item-Text">完了</p>
</div>
</div>
プログレスバーのCSS
index.css
.Group {
margin-bottom: 24px;
position: relative;
width: 100%;
max-width: 320px;
display: flex;
justify-content: space-between;
z-index: 0;
}
.Group-Bar {
position: absolute;
top: 12px;
left: 5%;
width: 90%;
height: 2px;
background-color: #eaeaea;/*バーの色*/
z-index: -1;
}
@media screen and (min-width: 768px) {
.Group-Bar {
top: 17px;
height: 5px;
}
}
.Shapeborder.isActive {
border: 1px solid #e2264d;
}
.Circle {
border-radius: 50%;
}
.Group-Item {
color: #b7b7b7;
display: flex;
flex-direction: column;
align-items: center;
}
.Group-Item.isActive {
color: #e2264d;
}
.Group-Item-CircleOuter {
width: 26px;
height: 26px;
display: flex;
justify-content: center;
align-items: center;
}
@media screen and (min-width: 768px) {
.Group-Item-CircleOuter {
width: 39px;
height: 39px;
}
}
.Group-Item-CircleOuter.isActive {
background: #fff;
}
.Group-Item-CircleInner {
width: 16px;
height: 16px;
background-color: #b7b7b7;
display: flex;
align-items: center;
}
@media screen and (min-width: 768px) {
.Group-Item-CircleInner {
width: 25px;
height: 25px;
}
}
.Group-Item-CircleInner.isActive {
background: #e2264d;
}
.Group-Item-CircleInner:last-of-type::after {
content: none;
}
.Group-Item-Text {
margin-top: 10px;
font-size: 1.4rem;
font-weight: 600;
}
参考記事
参考 シンプルなHTMLで、美しいプログレスバーを実装するスタイルシートのテクニックコリスまとめ
いかがでしたでしょうか。
知らないと何時間もうんうん頭を悩ませて作ることになるコンポーネントですが、知ってさえいれば圧倒言う間に実装できてしまうので今後もそういったコンポーネントの作り方をどんどん紹介していけたらなと思いました。
最後までご高覧いただきありがとうございました!
あわせて読みたい