SVG в CSS-фонах не отображается в Safari

следующий код не работает в Safari, и изображение не отображается. Это происходит только в Safari, он работает во всех других браузерах, я не могу понять, почему. Вот код CSS:

.hero {
        background: url(images/cards.svg) no-repeat center center fixed;
        -webkit-background-size: cover;
        -moz-background-size: cover;
        background-size: cover;
        height:180px;
        width:100%;
        margin-bottom:20px;
    }

и HTML-код:

<div class="hero"></div>

Update: приведенный выше код работает при конвертации " карт.svg " в JPG, но я бы предпочел работать с SVG, поскольку они загружаются быстрее. Почему SVG не появляется в Safari (7.0.1)? Согласно http://caniuse.com, SVG as поддерживается фоновое изображение CSS, но оно не отображается.

3 ответов


Это потому, что мой сервер обслуживает его с неправильным содержанием-типа.

пришлось добавить это к моему .файл htaccess:

AddType image/svg+xml .svg .svgz

это помогло мне:http://css-tricks.com/snippets/htaccess/serve-svg-correct-content-type/


я столкнулся с той же проблемой, хотя в моем случае проблема была не в типе контента. Оказалось, что мне пришлось добавить кавычки вокруг url, чтобы заставить его работать, т. е.:

background-image: url('/path/to/my.svg');

...не:

background-image: url(/path/to/my.svg);

Я знаю, что это не проблема, с которой столкнулась OP, но разместите это здесь в интересах всех, кто сталкивается с той же проблемой, что и я, и приходит к этой теме.


я исправил проблему, добавив следующий код .файл htaccess.

<ifModule mod_headers.c>
    <FilesMatch "\.(svg|svgz)$">
    Header set Content-Type "image/svg+xml"
    </FilesMatch>
</IfModule>

ссылки :