Background image tiles have gap between them when using SVG image. How to solve in Chrome?

不打扰是莪最后的温柔 提交于 2019-11-28 09:18:25

This turned out not just to be happening it Chrome, but it was more noticeable in that browser. As I posted above, here is the solution: After reading a solution for a slightly different Chrome/svg problem I figured out the answer. Posting back here in case someone else runs across this issue. I created my SVG file in Illustrator. Apparently my artboard/image size was not in precise pixels. I discovered this by opening my SVG file in a text editor and looking at the top of the file I saw this :

width="229.9999px" height="147.4256px" 

I opened the svg file in illustrator and made sure that the dimensions were exactly even pixels, then double checked again in the text file. Corrected dimensions were:

width="230px height="148px"

For some reason simply editing the values in the text file did not work for me, but then again it was faster to just fix in Illustrator than figure out how to edit the svg text file correctly. At any rate, now I do not have a gap in my tiles. Hope that helps someone else if they are having this problem.

There are four things to look for (this answer is for other people who end up here looking for a solution):

  1. Making sure the height and width are integers aka "without a fractional component" (as mentioned by Violet, no decimals)
    Example: height="326.25" vs height="326"

  2. Making sure your viewbox is also integers
    Example viewBox="0 0 306.25 753" vs viewBox="0 0 306 753"

  3. And if you have a viewport, you can also set the preserveAspectRatio attribute
    Learn More On MDN

  4. Another thing to pay attention to is have the height and width attribute set in the svg tag. This addresses an IE background-size sizing problem. This is a good article about it.

In my situation, the SVG repeated correctly in Chrome, but had a gap in Firefox until I set all my attributes to integers.

user3101788

It's not a problem of width or height. It appears even if your svg pattern is 100px x 100px and have no decimal.

You can resolve the problem putting preserveAspectRatio="none" in your svg file as it : <svg preserveAspectRatio="none" ...>

But when you want to repeat a svg pattern you can't choose this option because your pattern will be distorted.

Have you found the answer ?

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!