Я хочу использовать 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 для изображений?