Wie kann ich den angewendeten CSS-Zählerwert lesen?

8

Angenommen, Sie haben einen CSS 2.1-Zähler wie

%Vor%

(siehe Ссылка "Verschachtelung von Zählern")

Gibt es eine Möglichkeit, das :before.content (in diesem Fall "2.2") für <li id="foo"> in JavaScript zu lesen / abzurufen?

Edit: In meinem Fall würde eine Mozilla-only-Lösung ausreichen. Aber es scheint wirklich keine Möglichkeit zu geben, auf diese Informationen zuzugreifen. Zumindest habe ich keines bei Ссылка ff.

gefunden     
VolkerK 10.02.2009, 12:16
quelle

4 Antworten

3

Keine, an die ich nicht denken kann, nein. : Bevor Pseudo-Elemente nicht Teil des DOM sind, gibt es keine Möglichkeit ihren Inhalt zu adressieren.

Sie könnten eine Funktion erstellen, die das DOM des Stylesheets nach der: before-Regel durchsucht und herausgefunden hat, welche Regeln der Browser wo angewendet hat, aber es wäre unglaublich unordentlich.

    
bobince 10.02.2009, 13:04
quelle
0

Ich habe über einen Workaround nachgedacht, der versucht, den .content-Wert zu erhalten, aber selbst das funktioniert nicht, weil es nicht gesetzt wurde. Das ist wirklich ziemlich schockierend. Ich glaube nicht, dass es wirklich einen einfachen Weg gibt, diesen Wert zu erhalten!

Sie könnten es mit etwas ekelhaftem Javascript berechnen, aber das würde den ganzen Punkt dieses automatischen css stylen, das das Wasser ausstößt.

    
Gary Green 10.02.2009 13:28
quelle
0

Ich stimme den anderen zu: Derzeit gibt es dazu keine Möglichkeit. Daher schlage ich vor, dass Sie CSS-basierte Zähler durch javascriptbasierte ersetzen. Es sollte nicht zu schwierig sein, ein Skript in jQuery zu schreiben, um die gleiche Art von Beschriftung von Listenelementen durchzuführen, und dann wissen Sie, welche Werte Sie eingefügt haben. Vielleicht könnten Sie die CSS-basierte Nummerierung als Fallback beibehalten, falls JavaScript im Browser deaktiviert ist.

    
David Hanak 10.02.2009 18:10
quelle
-1
%Vor%

": before" funktioniert aus Gründen der Abwärtskompatibilität, wenn dies nicht der Fall ist, ich kenne die aktuelle Unterstützung für ":: before" nicht.

Klarstellung: : ist Pseudoklasse & amp; Elemente in CSS2.1, :: ist Pseudo-Element in CSS3.

Sie müssen wahrscheinlich die Zahl mit parseInt analysieren.

Leider ist getComputedStyle eine Standardfunktion, was bedeutet, dass MSIE dies nicht unterstützt, sondern FF, Chrome & amp; Safari und Opera tun.

    
02.08.2009 19:48
quelle

Tags und Links