【问题标题】:Simulating text-stroke in Internet Explorer在 Internet Explorer 中模拟文本笔划
【发布时间】:2011-06-01 20:19:21
【问题描述】:

所有浏览器,除了 Internet Explorer(显然是 IE9 测试版)都支持text-shadow,此外,webkit 浏览器似乎支持-webkit-text-stroke。但是如何在 Internet Explorer 中模拟文本笔划?我查看了可用的滤镜,在我看来,除了 Glow 之外,没有任何滤镜可以用来模拟这种情况,但它会产生模糊的光晕,而不是实心轮廓。

有没有办法使用 CSS 和/或 Microsoft 过滤器/行为和/或 JavaScript 来实现这一点?

我不需要该解决方案在旧版本的 IE 中工作,我的布局不会针对 IE7 或更早版本进行优化。

【问题讨论】:

    标签: javascript internet-explorer css


    【解决方案1】:

    我一直在寻找一种跨浏览器的文本笔划解决方案,该解决方案在覆盖在背景图像上时可以工作。认为我对此有一个解决方案,不涉及额外的标记,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;
    }
    

    【讨论】:

    • 这对我来说非常有用。投票赞成,但白色是如此粗略且不清晰:/
    • 您是否尝试过将 textshadow 和 IE 偏移更改为 2px?
    • 不会更厚一点的白色吗?我一直在寻找与FF相同的中风。我知道它可能不完全但足够接近。
    • 是的,它会使它变厚 - 我不确定你所说的“粗略”是什么意思,我以为你的意思是轮廓上部分缺失。使用纯 CSS 让所有浏览器版本看起来都一样几乎是不可能的,尤其是早期的 IE。根据我的经验,IE10 和 11 看起来不错,我在早期版本的 IE 上妥协了——如果它看起来不完美也没关系,上面的解决方案和我在
    • 我同意,你的方法是迄今为止唯一对我有用的方法。我想这是因为我使用的是漫画字体,所以白色的某些区域比文本的其他部分延伸得更多。
    【解决方案2】:

    这是我不久前挖出来的: http://jsfiddle.net/kovalchik/yJff9/

    我无法测试它是否真的有效,因为我目前使用的是 mac。它看起来也有点像一个肮脏的黑客。但这可能值得一试:P

    【讨论】:

    • 哇,这是一件有趣的事情。我无法链接阴影过滤器,因为第二个过滤器似乎覆盖了第一个。猜猜它适用于 Dropshadow。太棒了,非常感谢!
    猜你喜欢
    • 2015-10-16
    • 2014-12-09
    • 2010-11-06
    • 2011-03-26
    • 1970-01-01
    • 2018-10-14
    • 1970-01-01
    • 2012-10-17
    • 2013-10-27
    相关资源
    最近更新 更多