问题 如何使用jquery ui创建多个按钮样式?


有没有办法使用jquery ui主题滚轮或其他方式为按钮创建多个样式(特别是jquery ui按钮)?如果你看一下生成的主题 - 它似乎只允许一个按钮样式。

关键词是“jquery ui”;我理解如何在css中执行此操作,但使用jquery ui有助于保持小部件/ CSS很好地播放。


2434
2018-03-10 21:43


起源

我不这么认为。也许使用前缀功能并使用不同的CSS前缀创建多个主题? - David V.
我对这个今天到期的问题表示赏心悦目。如果您认为其中一个是最好的,您可能需要查看其他两个答案并标记已接受的答案。我不能这样做,因为这是你的问题! - Simon_Weaver


答案:


是的,您可以使用一个jQuery UI主题创建多个样式。 在下面的示例中,我有3个不同的按钮,每个按钮具有不同的颜色,并且都使用相同的默认UI主题。为此,您需要重新定义正在使用的元素的UI CSS类。例如,要使按钮使用UI样式,您需要包含类名ui-state-default。请注意,在此示例中,我为所有按钮包含了相同的类。要为特定按钮覆盖此UI类,我们通过向其添加另一个类来引用该按钮,然后在我们的css中对其进行样式设置并将其标记为重要。这将覆盖您正在使用的类的UI样式。

<button class="ui-state-default one">button one</button>
<button class="ui-state-default two">button two</button>
<button class="ui-state-default three">button three</button>

button{
    width:200px;
    height:50px;
    display:block;
    margin:10px;
}

.two{
    background: orange url(http://www.cyrilsframing.com.au/picts/menu.gif) repeat-x 0 0 !important;
    border:1px solid red!important;
}

.three{
    background: orange url(http://cmshuts.com/picts/background-menu-horz.gif) repeat-x 0 0 !important;
    border:1px solid yellow!important;
}

查看工作示例 http://jsfiddle.net/7vvhj/2/

有关如何使用jQuery UI设置元素样式的更多信息,请查看以下2个链接

http://wiki.jqueryui.com/w/page/12137970/jQuery-UI-CSS-Framework


8
2018-02-21 22:54





我最近一直在尝试这样做,最后选择了一个基本主题,为不同的按钮创建了新的样式(例如:用于保存按钮,请参阅下面的样式)您只需要在按钮中添加“保存按钮”类(在我的情况下,我使用锚作为按钮)

a.save-button
{
    background-image:none;
    border: 1px solid #FF0000;
    background-color:#FC8C8C;
    color:#FFFFFF;
}
a.save-button:hover
{ 
    border: 1px solid #FF0000;
    background-color:#FDB7B7;
    color:#000000;
}

更新:

我只需要再次这样做,除了满足按钮的渐变;我这样做是通过创建一个新的主题,然后复制渐变(..hard ..和..soft ..)并重命名它们,以免与主题混淆,即当它们得到更新...然后只是添加按钮的类,类似于上面....

a.green-button
{
    background: url(Images/GreenBGHardGrad.png) repeat-x center;
    border: 1px solid #132b14;
    color:#FFFFFF;
}
a.green-button:hover
{ 
    background: url(Images/GreenBGSoftGrad.png) repeat-x center;
    border: 1px solid #132b14;
    color:#FFFFFF;
}
a.green-button:active
{
    background-color:#FFFFFF;
    border: 1px solid #132b14;
    color:#132b14;
}

3
2018-03-10 22:00





你可以使用“按钮”小部件,然后将状态类从'ui-state-default'更改为其他东西[即'ui-state-error'或'ui-state-highlight']。但是,这些状态看起来不像是默认状态下的实际按钮。

$("button").button().addClass('ui-state-highlight');

例:  http://jsfiddle.net/dochoffiday/Kg5qn/

此外,您可以通过引入UI“范围”在页面上使用多个jQuery UI主题,如Filament Group所示:

http://www.filamentgroup.com/lab/using_multiple_jquery_ui_themes_on_a_single_page/


1
2018-02-22 21:31





假设您已经为各种按钮主题创建了多个类,我认为您可以更改按钮的标记,您可以在其中更改类以匹配各种按钮主题。

我没有测试过这个,只是试图指出你在正确的方向:-)


0
2018-03-10 21:50





你需要注意的一件事是 .ui-state-default 样式。

我在一个对话框中有按钮,由于某种原因得到了 .ui-state-default 打开第二个对话框时应用于它们。我假设对话框小部件正在尝试将状态重置为默认状态,这也适用于按钮。

方法1:

无论如何,我认为最简单的方法是放 !important 在样式上防止这种默认状态(从主题滚筒样式)优先。

a.green-button
{
    background-color:#FFFFFF !important;
    border: 1px solid #132b14 !important;
    color:#132b14 !important;
}

方法2:

或者你可以应用这样的风格,这将给这种风格更多点,而不需要!重要:

a.green-button, a.ui-state-default.green-button
{
    background-color:#FFFFFF;
    border: 1px solid #132b14;
    color:#132b14;
} 

如果我不使用,这是覆盖我的风格的原始CSS !important :

/* Interaction Cues
----------------------------------*/
.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight  {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; }

0
2018-02-20 04:33