はい、HTMLとCSSのみを使用してプログレスバーを表現することは可能です。JavaScriptを使用せずに、静的な(固定値の)プログレスバーを作成する方法を以下に示します。
✅ 方法1:HTMLの <progress>
要素を使用する
HTML5で導入された <progress>
要素を使うと、簡単にプログレスバーを作成できます。以下は基本的な例です:
<label for="progress">進捗状況:</label>
<progress id="progress" value="70" max="100">70%</progress>
この例では、value
属性が現在の進捗(ここでは70)、max
属性が最大値(ここでは100)を示しています。ブラウザはこれらの値を基にプログレスバーを自動的に描画します。
ブラウザによって <progress>
要素のデフォルトスタイルは異なりますが、CSSを使ってカスタマイズできます。以下はWebKit系ブラウザ(ChromeやSafari)向けのスタイル例です:
progress {
width: 300px;
height: 20px;
-webkit-appearance: none;
appearance: none;
}
progress::-webkit-progress-bar {
background-color: #eee;
border-radius: 10px;
box-shadow: inset 0 2px 5px rgba(0, 0, 0, 0.25);
}
progress::-webkit-progress-value {
background-color: #76c7c0;
border-radius: 10px;
}
このスタイルは、プログレスバーの外観をカスタマイズし、より洗練されたデザインにします。なお、Firefoxなど他のブラウザでは異なるベンダープレフィックスが必要になる場合があります。
より柔軟なデザインやアニメーションを実現したい場合、HTMLとCSSのみでカスタムプログレスバーを作成できます。以下はその一例です:
<div class="progress-container">
<div class="progress-bar" style="width: 70%;"></div>
</div>
.progress-container {
width: 300px;
height: 20px;
background-color: #eee;
border-radius: 10px;
overflow: hidden;
}
.progress-bar {
height: 100%;
background-color: #76c7c0;
width: 0;
transition: width 0.5s ease;
}
この方法では、style
属性の width
を変更することで進捗を表現します。例えば、style="width: 70%;"
とすることで70%の進捗を示します。CSSの transition
プロパティを使えば、進捗の変化にアニメーションを追加することも可能です。
HTMLとCSSのみでは、ユーザーの操作や時間経過に応じてプログレスバーを動的に更新することはできません。動的な更新が必要な場合は、JavaScriptを使用して value
属性や style
属性を変更する必要があります。