塗りつぶされた背景領域と空の背景領域の間にコントラストのある色のXHTML+CSSプログレスバーが必要です。
テキストの色に問題があります。塗りつぶされた背景と空の背景はコントラストが強すぎるため(これは要件です)、読みやすくするには、テキストを2色にして、両方の背景とコントラストを付ける必要があります。画像は言葉よりもそれをよりよく説明する必要があります:
濃い青で塗りつぶされた領域と白の空の背景を持つプログレスバーhttp://drdaeman.pp.ru/tmp/20090703/progress-bar-text-example.png 問題の例http://drdaeman.pp.ru/tmp/ 20090703 / progress-bar-text-problem.png
私の現在のプログレスバーの実装は簡単ですが、上記の例が示すように、テキストが読みにくい場合があります。これはまさに私が解決したい問題です。
私の現在の(簡略化された)実装の試み(内部のsのために配置できない配置overflow: hidden
なしでは機能しないため、失敗します):div.progress
span
width
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>Progress bar test</title>
<style type="text/css">
div.progress_bar {
border: 1px #ccc solid; position: relative;
text-align: center; height: 32px;
}
div.progress_bar .progress {
height: 32px;
overflow: hidden; /* This does NOT work! */
}
div.progress_bar .progress div {
position: absolute; width: 100%; height: 32px;
z-index: 30; overflow: hidden;
background-color: #44a;
}
div.progress_bar span {
position: absolute; top: 0; left: 0; width: 100%;
z-index: 20;
color: #000;
}
div.progress_bar .progress span {
position: absolute; top: 0; left: 0; width: 100%;
z-index: 40;
color: #eee;
}
</style>
</head>
<body>
<!-- Can be of any (unknown) width. Think of "width: auto".
The 400px value is just to keep it small on a big monitor.
DON'T rely on it! -->
<div id="container" style="width: 400px;">
<div class="progress_bar">
<!-- div.progress is a dark filled area container -->
<div class="progress" style="width: 51%;">
<!-- Actually dark filled area -->
<div style="width: 51%;"></div>
<!-- Text (white).
Does not clip, even with overflow: hidden on parent! -->
<span>This is a test</span>
</div>
<!-- Text (black) -->
<span>This is a test</span>
</div>
</div>
</body>
</html>
上記のライブバージョン:http://drdaeman.pp.ru/tmp/20090703/test2.html
以前の試み:http ://drdaeman.pp.ru/tmp/20090703/test.html
画像はGIMPで編集されたプロトタイプであり、このコードが正確に表示するものではありません。
追加:特にMeep3D、Nosredna、Lachlanに感謝します!ただし、まだ問題があります。私の場合、プログレスバーの幅は固定されておらず、水平方向に使用可能なすべてのスペースを使用する必要があります(width: auto;
またはwidth: 100%
許容範囲内です)。しかし、width: 400px
ルールがなければ、Lachlanのコードは壊れます。そして、可能であれば、JavaScriptの使用は避けたいと思います。