【问题标题】:How to remove the BG image on jQueryUI autocomplete combo (select)如何在 jQueryUI 自动完成组合上删除 BG 图像(选择)
【发布时间】:2014-02-21 08:28:01
【问题描述】:

我正在尝试设置 jQueryUI 自动完成的样式,但终生无法找到如何在悬停时覆盖下拉列表中的样式!

(我追求的是干净的平面外观,没有图像或渐变)。

我创建了一个说明问题的 plunkr:http://plnkr.co/edit/pUdcIRgWDcnfuKYVpyQV?p=preview

我在所有其他 jQUI 元素上都取得了成功,但不是这个。我也浏览了 CSS 文件,但我想知道 JS 是否正在添加某些内容,而我在 Chrome 中无法观察到它?

即使在 Chrome 中检查也很麻烦(我建议右键单击暴露的 <li>

欢迎提出建议,谢谢

jquery.ui.theme.min69d2.css 中的 jQueryUI 样式

.ui-state-hover,
.ui-widget-content .ui-state-hover,
.ui-widget-header .ui-state-hover,
.ui-state-focus,
.ui-widget-content .ui-state-focus,
.ui-widget-header .ui-state-focus {
    /* this is the damned hover!! */
    border:1px solid #999;
    background:#dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;
    font-weight:normal;
    color:#212121;

    /* an override in place: this works */
    border: none;
    background-image: none;
    background: yellow;
    color:blue;
}

我的样式表,它出现在 jqueryUI 之后并且更具体(在 #id 下)

.ui-state-hover,
.ui-widget-content .ui-state-hover,
.ui-widget-header .ui-state-hover,
.ui-state-focus,
.ui-widget-content .ui-state-focus,
.ui-widget-header .ui-state-focus {
    /* fails */
    border: none !important;
    background-image: none !important;
    background: yellow !important;
    color:blue !important;
}

【问题讨论】:

    标签: css jquery-ui


    【解决方案1】:

    这是一个列表,这些项目的类是.ui-menu-item

    查看此代码http://plnkr.co/edit/DQFOCVKIIBysKc4JQGtW?p=preview

    .ui-autocomplete, .ui-autocomplete .ui-menu-item, .ui-autocomplete .ui-menu-item a {
      background:none;
    }
    .ui-autocomplete {
      background:orange;
    }
    .ui-autocomplete .ui-menu-item {
      background:red;
    }
    .ui-autocomplete .ui-menu-item a:hover {
      background:yellow;
    }
    

    【讨论】:

    • 朝着正确的方向前进!我注意到,当我将光标移动到 li 的最边缘时,旧样式仍然显示,并且我无法完全删除它(并且此编辑似乎不适用于我的实际代码!)
    • 尝试做更具体的 .ui-menu-item 检查这个plnkr.co/edit/DQFOCVKIIBysKc4JQGtW?p=preview
    • ach,您的代码在 plunkr 中是一种享受。. 非常甜蜜.. 我已经变得太具体了,并让#selected 自己脱离了等式.. 案例结束!为你的时间发送这么多!
    • (为了后面的人,你会把这些行粘贴到你的答案中吗?很多tx!)
    • 这似乎没有设置项目被选中的状态。
    【解决方案2】:

    对于可能从 sass 方面遇到此问题的其他人,如果您碰巧使用 jquery-ui-sass-rails gem(或其他 sass 变体),您可以在导入 jquery.ui.all 之前简单地添加它

    $bgImgUrlHover: none;
    

    您可能还对$bgColorHover 感兴趣。

    相关的sass是:

    .ui-state-hover,
    .ui-widget-content .ui-state-hover,
    .ui-widget-header .ui-state-hover,
    .ui-state-focus,
    .ui-widget-content .ui-state-focus,
    .ui-widget-header .ui-state-focus {
        border: 1px solid $borderColorHover;
        background: $bgColorHover $bgImgUrlHover $bgHoverXPos $bgHoverYPos $bgHoverRepeat;
        font-weight: $fwDefault;
        color: $fcHover;
    }
    

    Here is a full list of jquery.ui sass variables

    【讨论】:

      猜你喜欢
      • 2011-11-04
      • 2016-09-08
      • 1970-01-01
      • 2012-02-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-29
      相关资源
      最近更新 更多