在jQuery UI自动完成结果中设置样式链接

时间:2016-11-28 02:21:19

标签: css jquery-ui jquery-ui-autocomplete

我已经阅读了很多关于jQuery UI自动完成样式的问题但是我仍然有一个我无法解决的问题。我正在创建这样的自定义渲染:

$('.license-input').autocomplete({
    source: "{{url(LaravelLocalization::getCurrentLocale().'/ajax/license')}}",
    minLength: 2,
    delay: 250
}).autocomplete('instance')._renderItem = function( ul, item ) {
    return $('<li>')
            .append('<a href="' + item.url + '">' + item.name + '</a>')
            .appendTo(ul);
};

所以我的<li>项目包含链接。

现在我想设置下拉列表并使用以下CSS(我夸大了可见性的颜色):

ul.ui-autocomplete li
{
    border:none;
    background-color:#f505f5;
    padding:10px 16px;
    font-size:12px;
    outline:0;
}

ul.ui-autocomplete li:hover
{
    background-color:#05e5e5;
}

ul.ui-autocomplete li a
{
    border:none;
    background-color: #f505f5;
}

ul.ui-autocomplete li:hover a
{
    border:none;
    background-color: #05e5e5;
}

但是,链接不会被设置样式。在Chrome的调试器中检查结果时,我看到的最让我困惑的是: enter image description here

您可以看到活动<a>元素的计算样式是蓝色,但项目本身具有白色背景。这个白色的东西应该是什么样的风格?

我已尝试过各种选择器,例如.ui-state-active.ui-state-hoverui-state-focusul.ui-autocomplete li a:hover等。

注意:border: none;中的ul.ui-autocomplete li:hover a规则实际上已应用 - 如果没有它,则样式看起来不同(链接周围有1px黑色边框)。所以唯一的问题是背景。

1 个答案:

答案 0 :(得分:1)

看起来列表项中的链接设置了background-image。这将覆盖您使用的任何背景颜色。

您可以为该特定链接设置background-image: none

类似的东西:

ul.ui-autocomplete li:hover a
{
    border:none;
    background-color: #05e5e5;
    background-image: none;
}

与背景图片链接的示例和没有: https://jsfiddle.net/yuwhuwkz/1/