Javascript 设置 CSS :after styles

标签 javascript jquery css

可以用Javascript设置css的:after样式吗?

那么让我们说:

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

最佳答案

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

一个最小的实现。您很可能希望跟踪您添加的规则,以便您可以删除它们。 sheet.insertRule 返回新规则的索引,您可以使用它来获取对它的引用以进行编辑或删除。

编辑:为方便起见,添加了将对象转换为 css 属性字符串的基本功能。

关于Javascript 设置 CSS :after styles,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7330355/

相关文章:

javascript - WordPress 插件“订阅评论已重新加载”: Loading Scripts Only When it is Necessary

html - 在 XSL 中像 WPF WrapPanel 一样显示图像

javascript - 如何强制 AddThis 下拉到左侧?

javascript - Chrome 扩展程序 : Eventlisten on current tab

javascript - javascript 中的作用域(为什么 $.post() 方法数组的作用域是本地的?)

javascript - 如何从php中的curl响应中获取特定值

javascript - 如何显示接下来的三个图像单击加载更多按钮

javascript - jquery datatable - 设置列宽和换行文本

JavaScript:在 Chrome 中使用 textarea.setSelectionRange 后滚动到选择

javascript - 将数组最后一个元素处的逗号标记为 JavaScript/Eclipse 的错误