Тень текста в IE, альтернативы - PullRequest
0 голосов
/ 19 ноября 2009

Мне нужна тень текста для встроенного, длинного текста абзаца в IE. Я понимаю прогрессивное улучшение, но ситуация иная. Мне действительно нужна тень текста, это не проблема дизайна, а вопрос, имеющий ключевое значение для работы моего приложения.

В любом случае IE не поддерживает CSS text-shadow. Какие есть альтернативы? Я знаю, что некоторые шрифты имеют контуры, которые создают эффект, аналогичный текстовым теням, но поддерживает ли IE небезопасные веб-шрифты?

А как насчет динамической замены изображения? Это жизнеспособная тактика? Я думаю, вероятно, нет, учитывая длину текста.

У кого-нибудь есть предложения? Я также рассмотрел форсирование Google Chrome Frame, но это последнее средство, если нет других жизнеспособных стратегий.

Спасибо.

Ответы [ 3 ]

0 голосов
/ 27 ноября 2009

Я думаю, что вы должны использовать шрифт истинного типа (.ttf) и преобразовать его в .eot. Затем сослаться на это в вашем html через java скрипт вот так:

<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 вы делаете ссылку на шрифт в атрибуте style следующим образом:

Вы можете конвертировать из .ttf в .eot здесь и найти дальнейшее объяснение того, как это работает http://www.kirsle.net/wizards/ttf2eot.cgi

0 голосов
/ 03 августа 2011

Я только что использовал это для тени текста в 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);
}

Моя единственная проблема в том, что если пользователь изменил свой текстовый рендеринг на своем ПК, он теперь будет таким красивым. У меня получилось хорошо, если я не выделю текст жирным шрифтом, но как только я это сделаю, он станет блочным.

Я могу просто оставить текстовую тень в IE, но как S **! это ... LOL

0 голосов
/ 19 ноября 2009

Я думаю, что здесь, с вашими основными требованиями, Flash - ваш лучший. Я не уверен, поддерживает ли SIFR тень, но на это стоит обратить внимание.

Это, безусловно, более дешевая нагрузка на ваших пользователей, чем принудительная установка Chrome.

EDIT:

Похоже, что 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);
}
...