Я хочу использовать SVG-версии логотипа компании на веб-сайте. В настоящее время все текущие версии основных браузеров (IE, Safari, Chrome, Firefox, Opera) поддерживают SVG, так что это не кажется сумасшедшим. Однако старые браузеры все еще существуют, поэтому мне нужно вернуться к поддержке PNG.
Очевидное решение - поместить содержимое SVG в тег object
следующим образом (простите встроенные стили ...):
<object data='logo.svg' style='height:3em' >
<img src='logo.png' style='height:3em' />
</object>
Который в теории должен отображать object
, если это возможно, или иначе отображать img
. Тем не менее, Chrome это не нравится, и он применяет стиль height
к самому объекту, но не к SVG, поэтому я получаю небольшую рамку, похожую на iframe, с полосами прокрутки и огромным логотипом.
Другим решением было бы использовать PNG в качестве источника img
, а затем заменить его во время рендеринга на источник SVG с javascript, если я думаю, что я работаю в браузере с поддержкой SVG. Это не идеально, потому что PNG все равно будет загружен, и я не уверен, что могу правильно определить поддержку SVG. К сожалению, jQuery, похоже, не имеет функции обнаружения SVG.
Наконец, поскольку мой веб-сайт развернут с помощью ASP.NET, я мог бы проверить строку пользовательского агента перед обслуживанием страницы и указать источник img
в зависимости от того, думаю ли он, что он будет поддерживать SVG. Но у этого также есть потенциальная проблема, что я не доверяю, я могу сделать правильный звонок.
Каков предпочтительный способ выполнения SVG для изображений?