代码之家  ›  专栏  ›  技术社区  ›  Pankaj Mishra

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

  •  1
  • Pankaj Mishra  · 技术社区  · 15 年前

    我有一个类名为“changebackgroundcolor”的样式表,我想在运行时更改CSS类中的颜色。

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

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

    是否有此或任何ASP.NET代码的jquery。

    我该怎么办?

    6 回复  |  直到 15 年前
        1
  •  4
  •   Jeff Sternal    15 年前

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

    这是可能的,但不可取。您建议将您的ASP.NET应用程序制作成一个文件编辑器。这将涉及提高应用程序的安全上下文(运行它的用户)的权限,从而打开一大罐蠕虫病毒。

    最简单的选择是通过编写新的 <style type="text/css"> 元素,该元素包含要动态生成的CSS类。

    例如,您可以保存 background-color 到A UserSettings 表(或任何其他每用户持久性机制),然后将其加载到.aspx页面,如下所示:

    <style type="text/css">
        .changebackgroundcolor {
            background-color: <%= user.BackgroundColor %>;
        }
    </style>
    

    或者可以将类定义保存在CSS文件中。而不是发射 直接在页面中,动态地编写一些jquery代码来更改类的定义,并遵循其他答案中的一些示例。

        2
  •  1
  •   Willson Haw    15 年前

    可以使用jquery中的“changebackgroundcolor”类更改所有元素,方法是:

    $(".changebackgroundcolor").css("background-color", "#21606E");
    

    这将在刷新页面之前生效,但不会保存在.css文件中。

        3
  •  1
  •   wojo    15 年前

    调整DOM(例如,使用jquery)所做的任何更改都不能是永久的。每次修改时都必须重新编写CSS文件,或者在每次点击时动态生成HTML或jquery代码中的CSS文件、样式部分。

        4
  •  1
  •   Dave Swersky    15 年前

    您可以在运行时添加、删除和修改CSS样式。 Here 是一个快速的概述,jquery文档也是非常有用的。

        5
  •  1
  •   Community CDub    8 年前

    我不知道如何修改CSS定义本身,但您可以根据类进行修改:

    $('.changebackgroundcolor').css('background-color', '#21606e'); 
    

    如果要返回默认值,请使用

    $('.changebackgroundcolor').css('background-color', ''); 
    

    如果不清楚,这两个change对象都有一个“changebackgroundcolor”类,比如

    <span id="mySpan" class="changebackgroundcolor"></span>
    

    通过添加样式属性。

    更新 :找到一个相关的so线程,其中包含指向 jQuery plugin 这可能会起到作用: jQuery equivalent of YUI StyleSheet Utility?

        6
  •  0
  •   Ilya Khaprov    15 年前

    不能更改现有的CSS类。但是你可以重新定义它-添加新的 <style></style> 和你的新班级一起上课 像这样:

    $('head').append('<style>YOUR NEW STYLE</style>');
    

    批评者注意: 嗯,作者问如何更改整个样式定义。不是关于如何覆盖特定元素的设置(当然可以用jquery css函数做什么)。

    我的建议:用不同的背景色创建两个不同的类,然后使用添加/删除类