我有一个类名为“changebackgroundcolor”的样式表我希望在运行时在css类中进行更改,颜色会发生变化。
.changebackgroundcolor{
background-color: #21606E;}
如果我在我的颜色选择器中更改背景代码,那么它将在此处永久更改。
这个或任何asp.net代码都有任何jquery。
我为此做了什么?
答案 0 :(得分:4)
是否可以编辑或修改css 文件在运行时?
有可能,但不建议。你提出的建议是将你的asp.net应用程序变成文件编辑器。这将涉及提高应用程序安全上下文(运行它的用户)的权限,这会打开大量蠕虫。
最简单的替代方法是通过在页面中编写一个包含要动态生成的css类的新<style type="text/css">
元素,将类注入到asp.net页面中。
例如,您可以将background-color
保存到UserSettings
表(或任何其他每用户持久性机制),然后将其加载到.aspx页面中,如下所示:
<style type="text/css">
.changebackgroundcolor {
background-color: <%= user.BackgroundColor %>;
}
</style>
或者您可以将类定义保存在css文件中。而不是直接将类发送到页面中,动态编写一些jQuery代码来更改类的定义,遵循其他答案中的一些示例。
答案 1 :(得分:1)
您可以使用以下命令在jquery中使用“changebackgroundcolor”类更改所有元素:
$(".changebackgroundcolor").css("background-color", "#21606E");
这将在您刷新页面之前生效,但不会保存在.css文件中。
答案 2 :(得分:1)
您调整DOM(例如,使用jQuery)所做的任何更改都不是永久性的。您必须在每次更改时重写CSS文件,或者在每次点击时动态生成HTML文件,样式部分或HTML动态jQuery代码。
答案 3 :(得分:1)
您可以在运行时添加,删除和修改CSS样式。 Here是一个快速概述,jQuery文档也非常有用。
答案 4 :(得分:1)
我不知道修改CSS定义本身的方法,但你可以根据类进行修改:
$('.changebackgroundcolor').css('background-color', '#21606e');
如果要返回默认值,请使用
$('.changebackgroundcolor').css('background-color', '');
如果不清楚 - 这两个都改变了具有“changebackgroundcolor”类的对象,比如
<span id="mySpan" class="changebackgroundcolor"></span>
添加样式属性。
更新:找到一个相关的SO线程,其中包含指向jQuery plugin的链接,可能会解决这个问题: jQuery equivalent of YUI StyleSheet Utility?
答案 5 :(得分:0)
您无法更改现有的css类。但你可以重新定义它 - 添加新的<style></style>
来与你的新班级一起
像这样的东西:
$('head').append('<style>YOUR NEW STYLE</style>');
批评者注意: 好吧,作者询问如何更改整个样式定义。不是关于如何覆盖特定元素的设置(当然可以使用jQuery css函数完成)。
我的建议:使用不同的背景颜色创建两个不同的类,然后使用add / removeClass