Was sollte getBoundingClientRect () für ein transformiertes SVG-Element zurückgeben?

8

Heute habe ich getestet, was passiert, wenn Sie getBoundingClientRect() auf einem SVG-Element, das gedreht wurde.

Test: Ссылка

Das Ergebnis ist Folgendes:

  • Chrome, Safari, Opera und IE scheinen die lokale (nicht transformierte) Begrenzungsbox des Elements zu berechnen und geben dann den Client rect für diese Begrenzungsbox zurück . Dies kann dazu führen, dass ein Client größer als angemessen erscheint.

  • Firefox dagegen schneidet den Client rect ab, um ihn an das Element anzupassen.


Welches Verhalten stimmt mit den Spezifikationen überein?

Für das, was es wert ist, bevorzuge das Verhalten von Firefox , aber (ohne das Verständnis der specs) denke , dass die Abweichung von Firefox ein Fehler sein sollte . >

    
Phrogz 17.05.2012, 01:37
quelle

1 Antwort

3

Nicht-Firefox-Browser scheinen keine brauchbaren Ergebnisse zu liefern und scheinen auch nicht mit den relevanten Spezifikationen übereinzustimmen.

Das CSSOM-Ansichtsmodul delegiert an die SVG-Spezifikation, die sagt, es ist die enge Bounding-Box nach den Transformationen nicht die enge Bounding-Box umgewandelt, so dass ich behaupte, dass ich implementiert es richtig.

    
Robert Longson 17.05.2012 08:31
quelle

Tags und Links