2011-09-07 16 views
13

¿Puedes establecer los estilos after de css con Javascript?Javascript establecer CSS: después de los estilos

lo que permite decir:

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

Esto puede ayudar: http://stackoverflow.com/questions/311052/setting-css-pseudo-class-rules-from-javascript – WTK

+0

Agregó la etiqueta jQuery como parece que la está usando. –

Respuesta

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: "''" 
}); 

Una implementación mínima. Lo más probable es que desee realizar un seguimiento de las reglas que agrega para poder eliminarlas. sheet.insertRule devuelve el índice de la nueva regla que puede usar para obtener una referencia para su edición o eliminación.

Editar: funcionalidad básica añadida para convertir un objeto en una cadena de propiedad css por comodidad.

+0

Parece que la propiedad 'content:' no se está incluyendo. –

Cuestiones relacionadas