【问题标题】:jQueryUI Button: How to change Button-Icon 'color'jQueryUI 按钮:如何更改按钮图标“颜色”
【发布时间】:2013-03-01 10:15:32
【问题描述】:

我以如下方式在 div 中放置了一个 html 按钮

<div class="ui-state-highlight">
    <button type="button" class="ui-button ui-state-default ui-corner-all ui-button-text-icon-primary">
        <!-- first span -->
        <span class="ui-button-icon-primary ui-icon ui-icon-disk"></span>
        <!-- second span -->
        <span class="ui-button-text">Save</span>
    </button>
    <!-- third span -->
    <span class="ui-icon ui-icon-info"></span>
    <strong>All</strong> form fields are required.
</div>

由于 div 被分配了 class:ui-state-highlight,因此 按钮的图标颜色已更改为 蓝色

有没有办法可以将图标颜色恢复为:默认(黑色)颜色?

并且进一步,我需要第三个​​跨度中的图标具有ui-state-highlight的效果(颜色)。

我尝试将ui-state-default 应用于第一个跨度(包含图标),但这并没有达到预期的效果。

【问题讨论】:

    标签: javascript jquery css jquery-ui jquery-ui-button


    【解决方案1】:

    重写为容器应用的ui-state-highlight类(如divs和spans)修复问题。

    【讨论】:

      【解决方案2】:

      您可以添加新样式,默认(黑色)图标颜色(http://code.jquery.com/ui/1.9.2/themes/base/images/ui-icons_2e83ff_256x240.png)的图像路径

      编辑:

      或者将外部 div 类更改为 ui-state-default:

      <div class="ui-state-default">
          <button type="button" class="ui-button ui-state-default ui-corner-all ui-button-text-icon-primary">
              <span class="ui-button-icon-primary ui-icon ui-icon-disk"></span>
              <span class="ui-button-text">Save</span>
          </button>
      </div>
      

      【讨论】:

      • 感谢您的回复。我在列表中又错过了一件事情。在同一个 div 中包含另一个 span,它显示不同的图标,但必须使用 ui-state-highlight(蓝色托盘)应用。如果我为给定的 png 重新着色,我会失去这种效果,不是吗?
      【解决方案3】:

      自己定义样式,如下所示:

      .ui-icon-custom { background-image: url(images/custom.png); }
      

      然后在调用.button()的时候就用它,像这样:

      $('#button').button({
        label: 'Test',
        icons: {primary: 'ui-icon-custom', secondary: null}
      });
      

      这假定您的自定义图标位于 CSS 下的 images 文件夹中...与 jQuery UI 图标映射通常位于相同的位置。创建图标时,它会得到一个像这样的类:class="ui-icon ui-icon-custom",并且该 ui-icon 类看起来像这样(可能是不同的图像,取决于主题):

      .ui-icon { 
        width: 16px; 
        height: 16px; 
        background-image: url(images/ui-icons_222222_256x240.png); 
      }
      

      因此,在您的风格中,您只需覆盖该背景图像,如果需要更改宽度、高度等。

      【讨论】:

      • 感谢您的回复。您能否验证我遵循的步骤。 [步骤 01] 创建了 ui-icons_454545_256x240.png 的副本,与 jQuery UI 图标映射的位置相同,并将其重命名为 custom.png [步骤 02] 创建了类.ui-icon-custom 在我的 site css [Step 03] $('#button').button() 例程中被调用。毕竟,我仍然得到 bluish 图标。我错过了什么吗?再次感谢。
      • 并且此解决方案是否会覆盖仅应用于此跨度的父 divui-state-highlight 样式?稍后我稍微改变了我原来的问题:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-13
      • 2020-04-20
      • 2023-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多