IE10 отказался от поддержки манипуляций с изображениями DirectX; теперь он использует стандарты SVG. Однако, например, в Firefox вы можете применить фильтр svg к любому элементу <img>
, но в IE10, и я могу заставить его работать только с изображениями в <svg> <image ... /> </svg>
.
Нужно ли писать отдельную разметку для разных браузеров? Это кажется неправильным.
Я пытался использовать фильтры CSS, такие как фильтр -ms-filter
, но ни один из них не работал в IE10.
ОБНОВЛЕНИЕ 1:
Хорошо, поэтому я думаю, что, возможно, я не был особенно ясен.
<!DOCTYPE html>
<style>
.pop {
filter: url(#pixelate);
}
.pop:hover {
filter: none;
}
.lol {
filter: url(#pixelate);
}
.lol:hover {
filter: none;
}
.svgRoot
{
height: 150px;
width: 200px;
}
</style>
<svg class="svgRoot">
<image class="lol" x="0" y="0" width="100px" height="100px" xlink:href="http://i.imgur.com/M5TIb.jpg" />
</svg>
<svg class="svgRoot">
<defs>
<filter id="pixelate">
<feMorphology operator="erode" radius="2" />
</filter>
</defs>
<image x="0" y="0" width="100px" height="100px" xlink:href="http://i.imgur.com/M5TIb.jpg" filter="url(#pixelate)" />
<text class="svgText" x="25%" y="90%" filter="url(#pixelate)">SVG text</text>
</svg>
<img src="http://i.imgur.com/M5TIb.jpg" width="100" class="pop">
В Firefox последний элемент, <img>
, фильтр работает. Однако в IE10 этого нет. Я мог бы добиться того же эффекта здесь, используя IE4-IE9 с DX. эффекты. Но IE10 реализует SVG. Однако похоже, что это работает только с элементами, содержащимися в теге <svg>
. Итак, как мне сделать какие-либо эффекты фильтра в IE10 без написания другой разметки? Я чувствую, что я должен что-то упустить...
Надеюсь, это прояснит это
filter
в CSS. Можете ли вы добавить пример кода к своему вопросу? - person Pavlo   schedule 22.01.2013<text>
невидим), в других браузерах возникают различные проблемы с его отображением. Обычно я использую вариант 2 (определение фильтров внутри каждого элемента<svg>
), но на этот раз я не могу заставить его работать. - person Pavlo   schedule 23.01.2013