Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CSS进度条文本颜色,用于填充对比度和空白背景?_Css_Text_Progress Bar_Effects - Fatal编程技术网

CSS进度条文本颜色,用于填充对比度和空白背景?

CSS进度条文本颜色,用于填充对比度和空白背景?,css,text,progress-bar,effects,Css,Text,Progress Bar,Effects,我想让XHTML+CSS进度条在填充和空白背景区域之间具有对比色 我对文本颜色有问题。由于填充背景和空白背景对比度太大(这是一项要求),为了保持可读性,文本应该是双色的,以便与两者形成对比。图像应该比文字更好地解释它: 我当前的进度条实现很简单,但正如上面的示例所示,文本在某些情况下可能很难阅读,这正是我想要解决的问题 我当前的(简化的)实现尝试(失败,因为溢出:隐藏在没有定位div.progress的情况下无法工作,因为内部span的宽度): 进度条测试 分区进度条{ 边框:1px#cc

我想让XHTML+CSS进度条在填充和空白背景区域之间具有对比色

我对文本颜色有问题。由于填充背景和空白背景对比度太大(这是一项要求),为了保持可读性,文本应该是双色的,以便与两者形成对比。图像应该比文字更好地解释它:

我当前的进度条实现很简单,但正如上面的示例所示,文本在某些情况下可能很难阅读,这正是我想要解决的问题

我当前的(简化的)实现尝试(失败,因为
溢出:隐藏
在没有定位
div.progress
的情况下无法工作,因为内部
span
宽度
):


进度条测试
分区进度条{
边框:1px#ccc实体;位置:相对;
文本对齐:居中;高度:32px;
}
分区进度条进度{
高度:32px;
溢出:隐藏;/*这不起作用*/
}
div.progress\u bar.progress div{
位置:绝对;宽度:100%;高度:32px;
z索引:30;溢出:隐藏;
背景色:#44a;
}
分区进度条跨度{
位置:绝对;顶部:0;左侧:0;宽度:100%;
z指数:20;
颜色:#000;
}
分区进度条进度跨度{
位置:绝对;顶部:0;左侧:0;宽度:100%;
z指数:40;
颜色:#eee;
}
这是一个测试
这是一个测试
上述内容的实时版本:
以前的尝试:

这些图像是GIMP编辑的原型,与此代码显示的内容不完全相同

添加:谢谢大家,特别是Meep3D、Nosredna和Lachlan!然而,我仍然有一个问题-在我的例子中,进度条应该没有固定的宽度,并占用所有水平可用的空间(
width:auto;
width:100%
是可以接受的)。但是没有
width:400px
rule Lachlan的代码中断。如果可能的话,我仍然希望避免使用JavaScript。

您可以:

  • 找一件适合你的灰色衣服
  • 使用JavaScript动态地在白色和黑色之间更改颜色,具体取决于颜色所在的位置
  • 使背景渐变的中间颜色更接近白色,并始终使用深色文本
  • 将进度显示在方框外:

将进度条文本的第二个副本放在div中,并将div的溢出设置为隐藏,这样它就可以显示了吗

--


更新:我也不是javascript专家,但我确信,如果宽度如您所说的灵活,您可以找出对象的宽度,然后在此基础上设置偏移量。

您可以为“百分比”文本使用文本阴影。唯一的缺点是它只能在最新的浏览器中工作。只有Firefox3.5、Safari(所有版本)和Chrome2+支持它

下面是一个使用文本阴影的演示,可以让您的进度更具可读性。

如果您愿意使用更多JavaScript,可以尝试以下jQuery插件:


文章说它只适用于IE,但它适用于Chrome3(我正在使用的)、Firefox3.5、InternetExplorer和Safari。它可能在较旧的浏览器中工作,但我还没有对它进行测试。

Meep3D有正确的答案。盒子的两个版本。显示顶部的n%

更多选择:

  • 把一个半透明的盒子放在盒子下面 使区域变暗的数字 为白色数字或点亮 黑色数字的区域
  • 使用红色和白色作为背景和颜色 一个黑色的数字。(这里的问题是红色的 与错误关联,因此您可以 玩其他三种组合 所有高对比度的颜色 相互对抗。)

根据Meep3D的建议,复印两份文本

将每个容器包装成与容器宽度相同的div。“上”div用另一个div包裹,该div以所需的百分比剪辑

更新:删除了固定宽度。
“upper”div的大小与包装器的百分比成反比

<html>
<head>
  <style type="text/css">
    #container {
        position: relative;
        border: 1px solid;
        text-align: center;
        width: 400px;
        height: 32px;
    }
    .black-on-white {
        height: 32px;
        color: #000;
    }
    .white-on-black {
        height: 32px;
        color: #fff;
        background-color: #44a;
    }
    .wrapper {
        width: 53%;
        overflow: hidden;
        position: absolute;
        top: 0; left: 0;
    }
    .black-on-white {
        width: 100%;
    }
    .white-on-black {
        width: 188.7%;
    }
  </style>
</head>
<body>
  <div id="container">
    <div class="wrapper">
        <div class="white-on-black">
             <span>This is a test</span>
        </div>
    </div>
    <div class="black-on-white">
        <span>This is a test</span>
    </div>
  </div>
</body>
</html>

#容器{
位置:相对位置;
边框:1px实心;
文本对齐:居中;
宽度:400px;
高度:32px;
}
.黑白相间{
高度:32px;
颜色:#000;
}
.黑白相间{
高度:32px;
颜色:#fff;
背景色:#44a;
}
.包装纸{
宽度:53%;
溢出:隐藏;
位置:绝对位置;
顶部:0;左侧:0;
}
.黑白相间{
宽度:100%;
}
.黑白相间{
宽度:188.7%;
}
这是一个测试
这是一个测试

您需要两个不同样式的值。和固定宽度

let计数器=0
常量增量=()=>{
柜台++
}
let interval=setInterval(()=>{
增量();
document.querySelectorAll('.value').forEach(节点=>{
node.textContent=`${counter}`
});
document.querySelector('.progress bar')。style.width=`${counter}%`
如果(计数器>=100)清除间隔(间隔);
},50)
。进度包装器{
保证金:20px自动;
宽度:400px;
高度:20px;
背景图像:线性梯度(45度,#ccc 25%,透明25%,透明50%,#ccc 50%,#ccc 75%,透明75%,透明);
动画:进度条2s线性无限;
背景尺寸:40px 40px;
位置:相对位置;
边界半径:5px;
溢出:隐藏;
}
.进度条{
z指数:3;
溢出:隐藏;
位置:绝对位置;
高度:20px;
背景色:#8178d9;
文本对齐:居中;
过渡:宽度0.5s;
}
.progress-value-1、.progress-value-2{
保证金:0;
位置:绝对位置;
[#########              ] 50 %
<html>
<head>
  <style type="text/css">
    #container {
        position: relative;
        border: 1px solid;
        text-align: center;
        width: 400px;
        height: 32px;
    }
    .black-on-white {
        height: 32px;
        color: #000;
    }
    .white-on-black {
        height: 32px;
        color: #fff;
        background-color: #44a;
    }
    .wrapper {
        width: 53%;
        overflow: hidden;
        position: absolute;
        top: 0; left: 0;
    }
    .black-on-white {
        width: 100%;
    }
    .white-on-black {
        width: 188.7%;
    }
  </style>
</head>
<body>
  <div id="container">
    <div class="wrapper">
        <div class="white-on-black">
             <span>This is a test</span>
        </div>
    </div>
    <div class="black-on-white">
        <span>This is a test</span>
    </div>
  </div>
</body>
</html>