Hintergrundbild-Kacheln weisen bei der Verwendung von SVG-Bildern eine Lücke auf. Wie löst man in Chrome?

8

Wenn ich ein SVG-Bild als gekachelten Hintergrund für den Körper meiner Seite verwende, gibt es eine kleine Lücke zwischen den Kacheln. Wenn ich zur PNG-Version der Datei wechsle, passiert das nicht.

Ich verwende die neueste Version von Google Chrome für Mac - Version 19.0.1084.56. Ich habe Windows nicht getestet, weil ich diese Plattform nicht habe. Datei funktioniert wie erwartet in Safari und FF.

Nach ein paar Google-Suchen und der Suche hier auf SO habe ich keine ähnlichen Berichte gefunden. Vielleicht hat hier jemand eine Lösung.

Hier ist mein Testcode:

%Vor%     
Violet 26.06.2012, 05:31
quelle

3 Antworten

8

Es stellte sich heraus, dass es nicht nur passiert, Chrome, aber es war mehr auffällig in diesem Browser. Wie ich oben gepostet habe, hier ist die Lösung: Nachdem ich eine Lösung für ein etwas anderes Chrome / SVG-Problem gelesen hatte, fand ich die Antwort heraus. Zurückgeben, wenn jemand anderes dieses Problem durchläuft. Ich habe meine SVG-Datei in Illustrator erstellt. Anscheinend war meine Zeichenfläche / Bildgröße nicht in genauen Pixeln. Ich entdeckte das, indem ich meine SVG-Datei in einem Texteditor öffnete und oben auf die Datei schaute, die ich sah:

%Vor%

Ich habe die Svg-Datei im Illustrator geöffnet und sichergestellt, dass die Abmessungen genau gerade Pixel waren, und dann nochmal in der Textdatei überprüft. Korrigierte Dimensionen waren:

%Vor%

Aus irgendeinem Grund funktionierte die einfache Bearbeitung der Werte in der Textdatei nicht für mich, aber andererseits war es schneller, nur in Illustrator zu korrigieren, als herauszufinden, wie die SVG-Textdatei korrekt bearbeitet werden kann. Auf jeden Fall habe ich jetzt keine Lücke in meinen Fliesen. Hoffe, dass das jemand anderem hilft, wenn sie dieses Problem haben.

    
Violet 05.07.2012, 23:39
quelle
0

Es gibt vier Dinge zu suchen (diese Antwort ist für andere Leute, die hier nach einer Lösung suchen):

  1. Sicherstellen, dass die height und width ganze Zahlen sind, auch "ohne eine Bruchkomponente" (wie von Violet erwähnt, keine Dezimalstellen)
    Beispiel: height="326.25" vs height="326"

  2. Stellen Sie sicher, dass Ihre viewbox auch ganze Zahlen sind Beispiel viewBox="0 0 306.25 753" vs viewBox="0 0 306 753"

  3. Und wenn Sie ein Ansichtsfenster haben, können Sie auch das preserveAspectRatio -Attribut festlegen: Weitere Informationen zu MDN

  4. Eine weitere Sache, auf die Sie achten sollten, ist das Attribut height und width im svg -Tag. Dies löst ein IE background-size Sizing-Problem. Dies ist ein guter Artikel darüber. / p>

In meiner Situation hat das SVG in Chrome korrekt wiederholt, hatte aber eine Lücke in Firefox, bis ich alle meine Attribute auf Ganzzahlen gesetzt habe.

    
Jason Lydon 26.02.2016 18:43
quelle
0

Es ist kein Problem der Breite oder Höhe. Es erscheint auch, wenn Ihr Svg-Muster 100px x 100px ist und keine Dezimalstelle hat.

Sie können das Problem beheben, indem Sie preserveAspectRatio="none" in Ihrer Svg-Datei als: <svg preserveAspectRatio="none" ...>

setzen

Aber wenn Sie ein SVG-Muster wiederholen möchten, können Sie diese Option nicht wählen, da Ihr Muster verzerrt wird.

Hast du die Antwort gefunden?

    
user3101788 12.10.2016 16:46
quelle