假设我有一个必须保持的设置字体颜色,并且它覆盖了可以是任何颜色的内容,我怎样才能确保字体是否可读,无论它覆盖什么?
这是一个jsFiddle来展示我试图描述的效果. http://jsfiddle.net/4AUDr/
#overlay
{
position: relative;
top: -150px;
color: #860101;
}
Run Code Online (Sandbox Code Playgroud)
Meme字幕使用带有黑色轮廓的白色文本使其在任何假设的meme图像上都可读,但是我不认为有一种跨浏览器兼容的CSS方法可以实现这一点,并且使用较小的字体可能看起来非常可怕.
这个问题有什么解决方案?
我试图在IE9中将文字放在文本后面.因为IE很糟糕我已经使用过滤器发光来完成IE7和8中的效果.
我做了一些研究,发现IE9不再支持滤镜发光,也不支持CSS3属性text-shadow(为什么MS?为什么?!).
所以我玩了ms滤镜的阴影和阴影,但这并没有解决任何问题.我尝试的一切也导致黑色背景颜色(见截图).
我正在使用的CSS
text-shadow: 0 0 0.6em #000, 0 0 0.6em #000;
filter: progid:DXImageTransform.Microsoft.glow(color=#606060,strength=2);
background-color:transparent;
Run Code Online (Sandbox Code Playgroud)
和一个渲染截图

注意:上面的CSS正在应用于包含文本的div.
我正在寻找的解决方案最好是css-only,但如果js是必要的,那就是它的方式.
PS.我不得不提到这一点,我不能再考虑IE9的一些公告海报说"对不起开发者,但我们会补偿你",我错误地希望IE停止强奸我的时间.
所有浏览器,除了Internet Explorer(显然甚至是IE9测试版)都支持text-shadow,此外,webkit浏览器似乎也能理解-webkit-text-stroke.但是如何在Internet Explorer中模拟文本笔划?我已经看过可用的滤镜了,在我看来,没有一个可以用来模拟这个,除了可能来自Glow,但它会产生模糊的光晕,而不是一个坚实的轮廓.
有没有办法使用CSS和/或Microsoft过滤器/行为和/或JavaScript来实现这一目标?
我不需要解决方案在IE的古老版本中工作,我的布局不会针对IE7或更早版本进行优化.