我一直在寻找一种跨浏览器的文本笔划解决方案,该解决方案在覆盖在背景图像上时可以工作。认为我对此有一个解决方案,不涉及额外的标记,js 并且适用于 IE7-9(我没有测试 6),并且不会导致别名问题。
这是使用CSS3 text-shadow的组合,除了IE(http://caniuse.com/#search=text-shadow)支持良好,然后使用IE的过滤器组合。目前 CSS3 文本笔划支持很差。
IE 过滤器
辉光滤镜 (http://www.impressivewebs.com/css3-text-shadow-ie/) 看起来很糟糕,所以我没有使用它。
David Hewitt 的回答涉及在多个方向上添加阴影滤镜。不幸的是,ClearType 被删除了,所以我们最终得到了严重的别名文本。
然后我将useragentman 上建议的一些元素与投影过滤器结合起来。
放在一起
此示例将是带有白色笔划的黑色文本。顺便说一句,我正在使用条件 html 类 target IE。
#myelement {
color: #000000;
text-shadow:
-1px -1px 0 #ffffff,
1px -1px 0 #ffffff,
-1px 1px 0 #ffffff,
1px 1px 0 #ffffff;
}
html.ie7 #myelement,
html.ie8 #myelement,
html.ie9 #myelement {
background-color: white;
filter: progid:DXImageTransform.Microsoft.Chroma(color='white') progid:DXImageTransform.Microsoft.Alpha(opacity=100) progid:DXImageTransform.Microsoft.dropshadow(color=#ffffff,offX=1,offY=1) progid:DXImageTransform.Microsoft.dropshadow(color=#ffffff,offX=-1,offY=1) progid:DXImageTransform.Microsoft.dropshadow(color=#ffffff,offX=1,offY=-1) progid:DXImageTransform.Microsoft.dropshadow(color=#ffffff,offX=-1,offY=-1);
zoom: 1;
}