根据背景颜色颠倒CSS字体颜色

是否有一个CCS属性反转字体颜色取决于像这张图片的背景颜色?

在这里输入图像描述

有一个名为mix-blend-mode的CSS属性,但IE不支持它。 我build议使用伪元素 。 如果你喜欢支持IE6和IE7,你也可以使用两个DIV而不是伪元素。

在这里输入图像描述

.inverted-bar { position: relative; } .inverted-bar:before, .inverted-bar:after { padding: 10px 0; text-indent: 10px; position: absolute; white-space: nowrap; overflow: hidden; content: attr(data-content); } .inverted-bar:before { background-color: aqua; color: red; width: 100%; } .inverted-bar:after { background-color: red; color: aqua; width: 20%; } 
 <div class="inverted-bar" data-content="Lorem ipsum dolor sit amet"></div> 

是的,现在有了。 使用混合模式,这可以用CSS来完成。

混合模式的例子

http://jsfiddle.net/1uubdtz6/

 div { position:absolute; height:200px } /* A white bottom layer */ #whitebg { background: white; width:400px; z-index:1 } /* A black layer on top of the white bottom layer */ #blackbg { background: black; width:100px; z-index:2 } /* Some white text on top with blend-mode set to 'difference' */ span { position:absolute; font-family: Arial, Helvetica; font-size: 100px; mix-blend-mode: difference; color: white; z-index: 3 } /* A red DIV over the scene with the blend-mode set to 'screen' */ #makered { background-color: red; mix-blend-mode: screen; width:400px; z-index:4 } 
 <div id="whitebg"></div> <div id="blackbg"></div> <div id="makered"></div> <span>test</span>