Поддержка браузера.SVG

Я работаю над быстро реагирующим дизайном, и я думаю о создании значков навигации как .svg файлы. Что такое текущая поддержка браузера как и там обходное решение/плагин для более старых версий браузера?

62
задан 19 January 2012 в 16:53

5 ответов

Можно использовать сценарий caniuse.js , чтобы обнаружить, если браузеры поддерживают SVG или нет:

caniuse.svg()
0
ответ дан 31 October 2019 в 13:48

... или можно позволить апачскому серверу, имеющему дело с ним:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} MSIE\s[5-8]\.
RewriteCond %{REQUEST_FILENAME} ^.+?\.svg$
RewriteRule ^(.+?)\.(?:svg)$ $1\.png [L]

только необходимо создать .png версии каждого .svg файла, и не имеет значения, если файл для фона CSS или для тега img.

12
ответ дан 31 October 2019 в 13:48

ВЎWith возражают элементу!

<object data="example.svg" type="image/svg+xml">
     <!-- If browser don't soport / don't find SVG  -->
     <img src="example.png" alt="Logotype" />
</object>
5
ответ дан 31 October 2019 в 13:48

отредактировал: я раньше связывался с очень хорошей сравнительной таблицей SVG, но она не была обновлена с 2011, таким образом, это больше не релевантно.

9
ответ дан 31 October 2019 в 13:48

Если я работаю с <img> элементы (в противоположность фоновым изображениям CSS), я использую удобное обходное решение, комбинацию [1 115] Modernizr (библиотека JavaScript, которая обнаруживает доступность определенных функций, , таких как поддержка .svg, на браузерах), и несколько строк jQuery:

$(".no-svg img").each(function() {
    var $this = $(this);
    if ($this.attr("src").indexOf(".svg") > -1) {
        var isSvg = $this.attr("src").toString();
        var isPng = isSvg.replace(".svg", ".png");
        $this.attr("src", isPng);
    }
});

1) я создаю .png версии каждого .svg файла. 2) Modernizr дает элементу HTML класс .no-svg, если он обнаруживает, что нет никакой поддержки .svg. 3) JQuery подкачивает расширения файла. .indexOf(".svg") проверки, если строка ".svg" содержится в значении src, возвращаясь -1, если это не находит его и положительное целое число, если это делает. Если это находит ".svg", целое src, за ниточку дергают в isSvg, и .replace() подкачки .svg для [1 112] и сохраняет результат как [1 113], который затем установлен как значение [1 114].

3
ответ дан 31 October 2019 в 13:48

Другие вопросы по тегам:

Похожие вопросы: