代码之家  ›  专栏  ›  技术社区  ›  Derek Adair

如何应用多个jQuery UI主题

  •  17
  • Derek Adair  · 技术社区  · 14 年前

    是否有任何技术/技巧/技巧可以帮助我在一个应用程序中组织和实现多个jQuery UI主题?

    我的结果是 !important 因为它似乎是强制样式重写的最可靠的方法-但是这种方法不是很理想。

    3 回复  |  直到 13 年前
        1
  •  31
  •   Chris Laplante    14 年前

    是的,但这取决于你的意思。

    假设您希望元素A的样式为主题X,元素B的样式为主题Y。jQuery主题滚轮内置了此功能。当你下载一个主题时( here ),单击 高级主题设置 在右边。在这里,您可以设置“CSS范围”。这将允许您应用jQuery UI类(即。 ui-corners-all 等)从一个特定的主题。以下是他们对此选项的描述:

    此字段允许您指定CSS 范围将主题限制为 页面的特定部分。这是 在上使用多个主题时很有用 一页纸。如果不提供CSS 作用域,您的主题将应用于所有用户界面 页面上的元素。

    在大多数情况下,你不需要 指定CSS范围。请注意:如果 如果提供CSS作用域,则不会 获取包含在 下载。

    您也可以更改 主题文件夹名称 :

    此字段允许您指定 您的主题文件夹的名称 下载。如果你计划 在一个页面上使用多个主题。它

    然而,如果你想创建一个全新的主题,从几个主题中借用一些片段,你有两个选择:编辑CSS和图像文件(不推荐),或者使用主题滚动工具创建你自己的。

    使用方法:

    CSS范围只是一个CSS选择器。假设主题X应该只应用于类的所有元素 aClass . 在这种情况下,您的CSS范围将是 .aClass . 所以,如果您想将主题X的圆角添加到元素中(假设您的CSS范围设置为 .A类 ),您的HTML希望如下所示:

    <div class='ui-rounded-corners aClass'>
        Content    
    </div>
    
        2
  •  9
  •   user406905    14 年前

    如果将此技术应用于覆盖并附加到body-dialog、datepicker、autocomplete。。。。

    在自动完成的情况下,可以执行以下操作来获取具有作用域类的父元素-仅将作用域类添加到自动完成本身的UL是不够的。

    jQuery('.autocomplete').autocomplete({
        source: function(request, response){
            {....}
        },
        create: function(event, ui) {
            jQuery('.ui-autocomplete').wrap('<span class="xxSCOPPEDCLASSxx"></span>');
        }
    });
    
        3
  •  5
  •   amos    14 年前

    嘿-找了几个小时,终于从花丝组找到了方法,完成了教程和工作实例。
    http://www.filamentgroup.com/lab/using_multiple_jquery_ui_themes_on_a_single_page/