如何覆盖jQuery UI小部件样式并保留其功能

如何覆盖jQuery UI小部件样式并保留其功能,jquery,user-interface,jquery-ui,coding-style,Jquery,User Interface,Jquery Ui,Coding Style,我正在使用一个内部应用程序 我正在寻找一种简单的方法来删除jQueryUI在给定小部件实例上提供的所有样式信息。我对任何事情都持开放态度,但一个可重用的javascript解决方案将是完美的。绝对不能丢失任何功能 最重要的是,所有的背景图像都被删除了,我可以保留布局样式 理想的情况是…… $tabs = $("#someElement").tabs(); $tabs.removeStyles(); 但我对任何允许我以灵活方式修改小部件样式的东西都持开放态度 最终目标是尽可

我正在使用一个内部应用程序


我正在寻找一种简单的方法来删除jQueryUI在给定小部件实例上提供的所有样式信息。我对任何事情都持开放态度,但一个可重用的javascript解决方案将是完美的。绝对不能丢失任何功能

最重要的是,所有的背景图像都被删除了,我可以保留布局样式

理想的情况是……

$tabs = $("#someElement").tabs();
$tabs.removeStyles();
但我对任何允许我以灵活方式修改小部件样式的东西都持开放态度


最终目标是尽可能多地控制样式

您可以轻松创建自己的removeStyles功能

$.fn.removeStyles = function(){
 $(this).attr('class','');
};
这将从所选图元中删除所有样式


编辑:如果只想删除jQueryUI创建的类,则选项有限。您可以将class属性中的类与您键入的jQueryUI类列表进行比较。没有什么灵丹妙药可以自动删除jQueryUI

您只需删除css文件,然后开始用您想要的布局重新构建它。这是一个很大的工作,但这是它的代价…

为了覆盖jquery ui css,请使用
!重要信息
标记

.ui-dialog {
  background-color: black !important;
  }

删除CSS样式/类的更简单方法是使用。。例如,要覆盖选项卡的所有角点,并且仅具有顶部角点,我使用它如下所示:

$('#tabs').tabs().removeClass('ui-corner-all').addClass('ui-corner-top');

希望这有帮助

我担心通过删除所有小部件类来伪造功能…而且,这会删除我在标记中手动分配的类,我想保留这些类。+1:IMHO,即使这不是OP想要的(即使它们是同一个用户?!),这是一种最不引人注目的方式,可以在不玩弄JS的情况下替换样式,这会导致痛苦的兔子窝。这个重要的CSS价值常常被忽视,而且非常有用。