Имитация обводки текста в Internet Explorer - PullRequest
3 голосов
/ 31 декабря 2010

Все браузеры, за исключением Internet Explorer (по-видимому, даже бета-версия IE9), поддерживают text-shadow, и, кроме того, браузеры webkit, похоже, понимают -webkit-text-stroke. Но как эмулировать обводку текста в Internet Explorer? Я посмотрел на доступные фильтры, и мне кажется, что ни один из них не может быть использован для имитации этого, кроме, возможно, Glow, но он создает размытое свечение, а не сплошной контур.

Есть ли способ достичь этого с помощью фильтров CSS / и / или Microsoft / поведения и / или JavaScript?

Мне не нужно решение для работы в старых версиях IE, мой макет не будет оптимизирован для IE7 или более ранних версий.

Ответы [ 2 ]

7 голосов
/ 18 июля 2012

Я искал кросс-браузерное решение для обработки текста, которое работает при наложении на фоновые изображения. Мне кажется, у меня есть решение для этого, которое не требует дополнительной разметки, 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/) выглядит ужасно, поэтому я этим не пользовался.

Ответ Дэвида Хьюитта заключался в добавлении фильтров в виде теней в комбинации направлений. Затем, к сожалению, ClearType удаляется, поэтому мы получаем плохо псевдоним.

Затем я объединил некоторые элементы, предложенные в useragentman , с фильтрами drophadow.

Собираем все вместе

Этот пример будет черным текстом с белым штрихом. Я использую условные 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;
}
2 голосов
/ 31 декабря 2010

Здесь есть то, что я откопал некоторое время назад: http://jsfiddle.net/kovalchik/yJff9/

Я не могу проверить, работает ли он на самом деле или нет, так как сейчас я использую Mac. Это выглядит как грязный взлом. Но стоит попробовать: P

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...