是否可以在运行时编辑或修改css文件?

时间:2009-10-28 15:17:06

标签: asp.net jquery

我有一个类名为“changebackgroundcolor”的样式表我希望在运行时在css类中进行更改,颜色会发生变化。

.changebackgroundcolor{
background-color: #21606E;}

如果我在我的颜色选择器中更改背景代码,那么它将在此处永久更改。

这个或任何asp.net代码都有任何jquery。

我为此做了什么?

6 个答案:

答案 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