Gunther: Webkit SVG Height Bug

Beitrag lesen

Hallo Mathias!

Apple Webkit basierte Browser haben, bzw. hatten früher einen Bug im Bezug auf die Höhe von SVG Elementen - siehe u.a.: https://bugs.webkit.org/show_bug.cgi?id=82489

Das Beispiel zum Reproduzieren dieses Bugs zeigt mir, dass der Fehler immer noch im Chrome 31 und Safari 7.0.1 unter Mac existiert. Das SVG-Element ist unglaublich hoch, weil die intrinsische Größe von 200 nicht berücksichtigt wird. Korrekt wird es in Firefox dargestellt. Im IE 11 wird anscheinend eine Standardhöhe von 150 angenommen.

Ja, gleiches Bild unter Windows.
Der IE scheint das 'max-height: 100%' automatisch anzuwenden (Browser Stylesheet?). Wobei mir dabei auch immer noch unklar ist, wieso bei einer Width von 200px max-height 150 ergibt!?

Ich binde die externen SVG Dateien per <object> ein.

Das hat zumindest nichts mit dem Bugreport zu tun. Dieser betrifft svg-Elemente direkt im HTML-DOM. Wie sich Browser bei object verhalten, weiß ich nicht.

Ja, erwischt. ;-)
Das hat aber indirekt schon auch mit diesem Bug zu tun. Normalerweise sollte ein Browser eine per Object eingebundene SVG Datei "automatisch" an die Größe des Parent Elements anpassen (width und height für object = 100%).

Aktuell machen das auch alle von mir getesteten Browser "richtig", mit Ausnahme des (alten) Safari (5.1.7 Win).

Hier *muss* das Container-Element zusätzlich eine explizite Angabe für Height haben, damit das Container-Element die korrekte Höhe hat (ansonsten beträgt diese 100%).

Also lass' mich meine Frage dahingehend abändern, dass ich gerne gewusst hätte, bis zu welcher Version Webkit Browser dieses Verhalten an den Tag legen?

Offenbar ist es sinnvoll, svg-Elementen und auch object-Elementen, die SVG-Grafiken einbinden, eine feste width und height zu geben.

Nein, denn genau dann geht ja der entscheidende Vorteil der automatischen Skalierung verloren.

Der Workaround besteht in einer einfachen Javascript Lösung, die basierend auf der Aspect Ratio den jeweiligen Elementen zusätzlich eine feste Height Angabe zuweist.
Aber ich wüßte halt gerne, für welche Browser das von Nöten ist und für welche nicht.

Gruß Gunther