使CSS中白色文本下方的背景变暗

我有要求在卡片上显示多个图像,我想写一些文字在他们身上。 这些是用户上传的随机图片,可以是任何颜色。 顶部的白色文本不需要透明,如附带的小提琴所示。

这是一个例子小提琴 - http://jsfiddle.net/7dgpbLd8/1/

这是我在图像上添加灰色div的解决方案。 但是,文字在灰色背景上应始终为白色。 但这里也有影子。 知道如何隐藏实际的背景以便文本可读,这将非常棒。


遵循Lee的建议(尽管我建议添加一些填充),或者使用文字阴影,就像这样。

div {
    color: white;
    text-shadow: 0 1px black;
}

或者你可以合并我们的两种方法。

span {
    color: white;
    text-shadow: 0 1px black;
    background: #333; /* For browsers that don't support RGBA */
    background: rgba(0,0,0,0.18);
    padding: 4px 8px;
}

你的文章的问题在于你设置了opacity 。 但是,当您降低不透明度时,不仅背景会发生变化,而且会发生其所有内容。 换句话说,文字在你的小提琴中也具有较低的不透明度。 在我上面提到的小提琴中,你没有这个问题,因为你使用rgba。 RGBA使用默认的RGB颜色表示,但是为该层添加了一个alpha层组件(即:不透明度)。 这意味着您可以添加(半)透明的颜色。

它的工作方式与不透明度相同,只需为颜色添加所需的值(比如0.8),并将其添加到默认的rgb值之后。 一个例子:白色的RGB是255,255,255 ,黑色的是0,0,0 。 如果你想要那些不透明度为0.8,则在后面加上0.8:分别为rgba(255,255,255,0.8)rgba(0,0,0,0.8) 。 通过这样做,只有背景的不透明度会改变,而不是文字的不透明度。 有关示例,请参阅上面的链接。


我会将图像放入深色背景的div中,然后降低图像本身的不透明度,使图像变暗以便可以读取文本。 通过这种方式,您还可以将光标上的图像变暗以提高可读性。

http://jsfiddle.net/3w34k1ea/

    .img-wrapper{
    width: 100%;
    height: 100%;
    background: #000;    
}
     img {
      width: 100%
        height: 100%;
        opacity: .5;
}
     img:hover{
    opacity: .3;
}
     p {
    color: white;
    position: absolute;
    top: 15px;
    left: 15px;
    font-size: 20px;
}

我会在你的位置使用文字阴影,但是我会尝试使用多个阴影,直到达到最佳解决方案。 例如:

text-shadow: 2px 2px 5px rgba(0,0,0,0.8), 0px 0px 2px  rgba(0,0,0,1);

小提琴

链接地址: http://www.djcxy.com/p/89351.html

上一篇: Darken the background beneath white text in CSS

下一篇: How can I make a font readable over any color?