2011-09-07 15 views
13

È possibile impostare gli stili: after di css con Javascript?JavaScript impostato CSS: dopo gli stili

Allora supponiamo:

$("#foo li:after").css("left","100px"); 
+5

Questo può aiutare: http://stackoverflow.com/questions/311052/setting-css-pseudo-class-rules-from-javascript – WTK

+0

Aggiunto il tag jQuery come sembra utilizzarlo. –

risposta

25
var addRule = (function(style){ 
    var sheet = document.head.appendChild(style).sheet; 
    return function(selector, css){ 
     var propText = Object.keys(css).map(function(p){ 
      return p+":"+css[p] 
     }).join(";"); 
     sheet.insertRule(selector + "{" + propText + "}", sheet.cssRules.length); 
    } 
})(document.createElement("style")); 

addRule("p:before", { 
    display: "block", 
    width: "100px", 
    height: "100px", 
    background: "red", 
    "border-radius": "50%", 
    content: "''" 
}); 

Un'implementazione minimo. Molto probabilmente vorresti tenere traccia delle regole che aggiungi per poterle rimuovere. sheet.insertRule restituisce l'indice della nuova regola che è possibile utilizzare per ottenere un riferimento ad esso per la modifica o la rimozione.

Modifica: aggiunta funzionalità di base per convertire un oggetto in una stringa di proprietà css per comodità.

+0

Sembra che la proprietà 'content:' non sia inclusa. –

Problemi correlati