有没有办法通过Javascript/jQuery动态定义css规则?

有没有办法通过Javascript/jQuery动态定义css规则?,javascript,jquery,css,dynamic,Javascript,Jquery,Css,Dynamic,关于我的问题,我怀疑很多人可能会混淆动态样式(jQuery的.css()可以实现的功能)函数和动态CSS规则。首先,它只更改与选择器匹配的现有元素的样式。但我要做的是调整规则,以便任何与选择器匹配的新元素也将使用该(动态)规则 作为一个例子,让我们使用一组div类“窗格”。< /P> 我可以使用$(“.pane”).css({“background color”:“#00f”}); 但是如果我随后添加一个新的窗格$(“body”).append(“”;),它将不会使用这种新样式,因为它不是一个规

关于我的问题,我怀疑很多人可能会混淆动态样式(jQuery的.css()可以实现的功能)函数和动态CSS规则。首先,它只更改与选择器匹配的现有元素的样式。但我要做的是调整规则,以便任何与选择器匹配的新元素也将使用该(动态)规则

作为一个例子,让我们使用一组div类“窗格”。< /P> 我可以使用

$(“.pane”).css({“background color”:“#00f”});

但是如果我随后添加一个新的窗格
$(“body”).append(“”;
),它将不会使用这种新样式,因为它不是一个规则

我不明白为什么添加/更改CSS规则不是默认行为?据任何人所知,W3C工作组是否讨论过这一点


是否有人知道是否可以在客户端动态添加或更改CSS规则(即不与服务器通信)?

您可以使用以下方法将CSS in style标记附加到页眉:

$("<style>").prop("type","text/css").html(".pane{background-color: #00f;}").appendTo("head");
$(“”).prop(“type”,“text/css”).html(“.pane{background color:#00f;}”).appendTo(“head”);

$(“head”).append($(“”).prop(“type”,“text/css”).html(“.pane{background color:#00f;}”))

您可能可以使用
addClass()
removeClass()
?css类必须已经存在..除非您使用某种东西来动态创建和链接.css文件?@C-link:您没有正确理解这个问题,这不是我们要问的问题。我几乎不认为这个问题与您标记为Arun P Johny的问题重复。答案可能类似,但甚至不接近于g下面是米林的答案。@Milind-Anantwar答案的另一种方式,你可以这样做。
$(“”)。appendTo('body')。css('background-color','#00f');
,但我认为这个答案是一个糟糕的编码实践的例子,因为你正在应用特定的样式而不是规则。你正在失去css(及其规则)的力量…即保持样式定义和DOM结构分开。谢谢!这非常有效。
$("head").append($("<style>").prop("type","text/css").html(".pane{background-color: #00f;}"))