我已经阅读了很多关于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的调试器中检查结果时,我看到的最让我困惑的是:
您可以看到活动<a>
元素的计算样式是蓝色,但项目本身具有白色背景。这个白色的东西应该是什么样的风格?
我已尝试过各种选择器,例如.ui-state-active
,.ui-state-hover
,ui-state-focus
,ul.ui-autocomplete li a:hover
等。
注意:border: none;
中的ul.ui-autocomplete li:hover a
规则实际上已应用 - 如果没有它,则样式看起来不同(链接周围有1px黑色边框)。所以唯一的问题是背景。
答案 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/