2009-11-18 62 views
0

我在IE中需要文本阴影为内嵌长文本文本。我了解渐进式增强,但情况不同。我绝对需要文字阴影,这不是设计问题,而是我的应用程序功能的核心问题。IE中的文字阴影,替代品

无论如何,IE不支持CSS文字阴影。有什么替代品?我知道一些字体的轮廓会产生与文字阴影类似的效果,但是IE支持Web不安全字体吗?

怎么样动态图像替换?这是一种可行的策略吗?考虑到文本的长度,我想可能不是。

有没有人有任何建议?我也考虑强制谷歌Chrome框架,但如果没有其他可行的策略,这是不得已而为之的。

谢谢。

回答

0

我想你应该使用一个真正的字体(.ttf)字体并将其转换为.eot。然后是全球化志愿服务青年在通过Java脚本的HTML喜欢这样的:

<style type="text/css"> 
@font-face { 
font-family: MyCustomFont; 
font-size:10.0pt; 
src: url("fontname_free.eot");/* EOT file for IE */ 
} 
@font-face { 
font-family: MyCustomFont; 
font-size:10.0pt; 
src: url("fontname_free.ttf") format("truetype");/* TTF file for CSS3 browsers */ 
} 

然后在你的实际的HTML您提及这样的样式属性的字体:

您可以转换从.TTF到。 EOT这里,发现它是如何workd http://www.kirsle.net/wizards/ttf2eot.cgi

0

我认为在这里,根据您的核心要求,Flash是您最好的选择。我不确定SIFR是否支持影子,但这值得研究。

这对您的用户来说肯定是一个比强迫Chrome框架更便宜的负担。

编辑:

貌似SIFR是在这方面非常灵活:

http://fortysevenmedia.com/blog/archives/sifr_3_hard_drop_shadows/

更有前途,除非我错了,它看起来像它可以在IE中支持:

http://msdn.microsoft.com/en-us/library/ms533086%28VS.85%29.aspx

这样:

.className { 
    filter:progid:DXImageTransform.Microsoft.Shadow(color=#0000FF,direction=45); 
} 
+0

这将是惊人的,如果这个工程,但我想我以前试过,但发现它不能正常工作的内联元素。将再次尝试,谢谢。我真的看到了闪存的优势,但缺乏移动支持真的很烦人。 – Charuru 2009-11-18 23:06:17

+0

不幸的是我不相信这适用于内联元素。但是,谢谢你的帮助。 – Charuru 2010-01-14 23:11:52

0

进一步的解释我刚才用它进行文字阴影在IE:

p { zoom: 1; background-color: *Your background colour*; -ms-filter: "progid:DXImageTransform.Microsoft.Chroma(Color=*Your background colour*) progid:DXImageTransform.Microsoft.DropShadow(Color=#000, OffX=1, OffY=1)"; filter: progid:DXImageTransform.Microsoft.Chroma(Color=*Your background colour*) progid:DXImageTransform.Microsoft.DropShadow(OffX=1, OffY=1, Color=#000); 
} 

我唯一关心的是,如果用户在PC上改变了他们的文本渲染,现在它会变得非常漂亮。如果我没有大胆的文字,我的结果是好的,但是一旦我做到了,就会变得块状。

我可能只是在IE中留下文字阴影,但S怎么样!是...大声笑