code-o-mat (unregistriert): getComputedStyle - Vererbung bestimmen

gudd'n Tach,

kennt sich hier jemand mit der Anwendung von getComputedStyle() aus? Wäre für einen Link auf ein DEUTSCHE Seite mit Erklärungen der Methoden dankbar.

Vielleicht weiß auch jemand, wie ich feststellen kann, ob eine Eigenschaft vererbt wurde? Also: wenn ich z.B. im CSS stehen habe:

p {color:#ff0000}

und im Quelltext steht:

<p id="meinAbsatz">

und ich frage mit JS ab:

window.getComputedStyle(document.getElementById("meinAbsatz"), "")["color"];

dann bekomme ich als Antwort die Farbdefinition für <p>, weil "meinAbsatz" nunmal diese Farbe geerbt hat. Aber ich muß wissen, ob diese Farbe geerbt wurde, oder ob sie für #meinAbsatz extra vergeben wurde. Geht das?

mfG, code-o-mat

  1. Hallo,

    Aber ich muß wissen, ob diese Farbe geerbt wurde, oder ob sie für #meinAbsatz extra vergeben wurde.

    Wozu willst du das abfragen? Vielleicht gibt es eine andere Lösungsmöglichkeit.

    Geht das?

    Nein. Du kannst höchstens alle Stylesheets mit JavaScript durchlaufen und nach einer Regel mit dem Selektor #meinAbsatz suchen, dann darin nach einer Deklaration für die Eigenschaft color suchen. Das geht über document.styleSheets, dazu findest du einige Beispiele im Forumsarchiv.

    Mathias

    1. Hi,

      Wozu willst du das abfragen?

      das ist ziemlich kompliziert zu erklären, ist aber nötig ;-)

      Du kannst höchstens alle Stylesheets mit JavaScript durchlaufen [...] über document.styleSheets

      ja, so habe ich es jetzt gemacht. Ist eigentlich nicht so wahnsinnig kompliziert. Allerdings, eines verstehe ich nicht: wenn ich z.B. diesen Ausdruck nehme:

      document.styleSheets[0].cssRules[0].style.parentRule

      dann bekomme ich die relevanten Daten in einem wesentlich kleineren Array als ohne .parentRule. Soweit schön. Wenn ich jetzt aber an diesen Ausdruck noch .style anhänge, also:

      document.styleSheets[0].cssRules[0].style.parentRule.style

      dann bekomme ich wieder das Riesenobjekt von vorher, daran wieder .parentRule angehängt wieder das kleinere usw. Das geht immer im Kreis. Was sagt mir denn parentRule nun genau? Und kommt dieses Thema eigentlich auch mal in SELFHTML rein?

      mfG, code-o-mat