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:
Ideas as to what might be happening?
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.
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.
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">
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With