2013-11-04 243 views
7

我想改变DIV背景的亮度,而不影响div中的其他内容。用CSS改变背景的亮度

当我在div上应用悬停亮度过滤器时,其中的其他元素也受到影响。我不想要的。

我的另一个解决方案是用编辑过的照片替换div的背景。但是,这需要双倍的存储空间,我不喜欢。

有没有办法改变背景图像的亮度?

JSFIDDLE

<div id="replace"> 
    <div id="transparent"> 
     <span id="text">Random unaffected text</span> 
    </div> 
</div> 

    <div id="brightnessfilter"> 
    <div id="transparent"> 
     <span id="text">Random AFFECTED text (it glows)</span> 
    </div> 
</div> 

#replace { 
width:700px; 
height:465px; 
background-image:url('http://i42.tinypic.com/351dff5.jpg'); 
} 

#brightnessfilter { 
    width:700px; 
    height:465px; 
    background-image:url('http://i42.tinypic.com/351dff5.jpg'); 
} 

#brightnessfilter:hover { 
    -webkit-filter: brightness(1.3); 
-moz-filter: brightness(1.3); 
-o-filter: brightness(1.3); 
-ms-filter: brightness(1.3); 
} 

#transparent { 
    position:relative; 
    top:400px; 
    width:700px; 
    height:65px; 
    background-color:rgba(0,0,0,.5); 
    border-radius:8px; 
} 

#text { 
    color:white; 
    font-weight:bold; 
    position:relative; 
    top:9px; 
    left:9px; 
    font-size:16px; 
} 

#replace:hover { 
    background-image:url('http://i40.tinypic.com/2cft7dl.jpg'); 
} 

上面这里是创造预期的效果链接到一个拨弄我的两个尝试。但两者在使用时都有缺点。

在此先感谢!

+0

不是没有一些非语义的HTML – PlantTheIdea

回答

-1

感谢您的帮助。但是,当我发布这个消息之后,我发现了一个想法。

我使用CSS来将整个div内容更改为亮度1.3,并且将文本的亮度更改为0.8即使是亮度也是如此。

像这样:

JSFIDDLE

<div id="brightnessfilter"> 
    <div id="transparent"> 
     <span id="text">Random AFFECTED text (it glows)</span> 
    </div> 
</div> 

#brightnessfilter { 
    width:700px; 
    height:465px; 
    background-image:url('http://i42.tinypic.com/351dff5.jpg'); 

} 

#brightnessfilter:hover { 
    -webkit-filter: brightness(1.3); 
-moz-filter: brightness(1.3); 
-o-filter: brightness(1.3); 
-ms-filter: brightness(1.3); 
} 

#brightnessfilter:hover #text { 
    -webkit-filter: brightness(0.8); 
-moz-filter: brightness(0.8); 
-o-filter: brightness(0.8); 
-ms-filter: brightness(0.8); 
} 

#transparent { 
    position:relative; 
    top:400px; 
    width:700px; 
    height:65px; 
    background-color:rgba(0,0,0,.5); 
    border-radius:8px; 
} 

#text { 
    color:white; 
    font-weight:bold; 
    position:relative; 
    top:9px; 
    left:9px; 
    font-size:16px; 
} 

我只是不知道正确的数字0.7似乎不太光明高于正常0.8似乎没有亮。

+0

我不会说这是一个非常灵活的方法......如果在该框中添加任何其他元素会怎么样?你也将分别应用过滤器到每个新组件?什么是变化?再次对所有这些应用更改? – Agat

+0

是的,但内容将始终如一。只有背景图片和文字会随时间而改变。但在这种情况下,元素的数量永远不会改变。 – user2953063

+0

我在这里建议的简单方法有什么问题:http://stackoverflow.com/a/19773431/691660?你想要使用过滤器吗?他他 – Agat