Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SVG scaling issues in Safari

Tags:

css

safari

svg

Strange issue occurring in Safari. I'm setting the background of an element to be an SVG. This SVG was drawn on a tight pixel grid and appears in most every other browser perfectly, but for some reason it's scaling incorrectly in Safari.

Here is the SASS I'm using to set the background:

@include background-size(100% 100%);
background: transparent image-url('icon-laptop.svg') no-repeat 0 0;

... and the CSS that creates:

-webkit-background-size: 100% 100%;
-moz-background-size: 100% 100%;
-o-background-size: 100% 100%;
background-size: 100% 100%;
background: transparent url('../images/icon-laptop.svg?1343856741') no-repeat 0 0;

I tried setting the background-size to 99.9% and it helped a bit but made it blurry in every browser.

Here are the results in Chrome and Safari:

enter image description here

Ideas as to what might be happening?

like image 950
Brandon Durham Avatar asked Aug 01 '12 22:08

Brandon Durham


People also ask

Why is my SVG blurry in Safari?

If your svg contains straight horizontal and vertical lines, they may seem to blur or sharpen randomly as you zoom in and out, as they have to pick the optimum set of pixels on your screen, though that's a general browser thing, not a Safari thing.

Does Safari support SVG?

Webkit: Safari and ChromeSupport for SVG in Safari and Chrome is relatively new (circa 2008 when Chrome was introduced). Chrome was the first browser to launch with native SVG support from the beginming.


1 Answers

Okay, so the fix was to add preserveAspectRatio="xMinYMin none" to the SVG element.

<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
     width="35px" height="28px" viewBox="0 0 35 28" enable-background="new 0 0 35 28" xml:space="preserve" preserveAspectRatio="xMinYMin none">
like image 171
Brandon Durham Avatar answered Nov 15 '22 16:11

Brandon Durham