【问题标题】:Styling JQuery UI Autocomplete样式化 JQuery UI 自动完成
【发布时间】:2013-07-24 04:29:06
【问题描述】:

Fiddle

我正在尝试为 AutoComplete 中的部分设置样式,但我不知道在 CSS for 部分中放置什么。我特别想制作:

color: #96f226;
border-radius: 0px;
border: 1px solid #454545;

有什么建议吗???

【问题讨论】:

  • 什么意思?您不确定要使用哪个 CSS 选择器?

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


【解决方案1】:

您在寻找这个选择器吗?:

.ui-menu .ui-menu-item a{
    background:red;
    height:10px;
    font-size:8px;
}

丑陋的演示:

http://jsfiddle.net/zeSTc/

只需替换为您的代码:

.ui-menu .ui-menu-item a{
    color: #96f226;
    border-radius: 0px;
    border: 1px solid #454545;
}

演示:http://jsfiddle.net/w5Dt2/

【讨论】:

  • Yes!!! Here 是我一直在问我的大部分问题的完成程序。 谢谢!
  • 对于 jquery-ui 1.12.1 试试:.ui-menu-item div.ui-state-active{//your styling here}
  • 您好,第二个链接已损坏。
【解决方案2】:

jQuery UI 自动完成的引导样式

.ui-autocomplete {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 1000;
    float: left;
    display: none;
    min-width: 160px;   
    padding: 4px 0;
    margin: 0 0 10px 25px;
    list-style: none;
    background-color: #ffffff;
    border-color: #ccc;
    border-color: rgba(0, 0, 0, 0.2);
    border-style: solid;
    border-width: 1px;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
    -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
    -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
    -webkit-background-clip: padding-box;
    -moz-background-clip: padding;
    background-clip: padding-box;
    *border-right-width: 2px;
    *border-bottom-width: 2px;
}

.ui-menu-item > a.ui-corner-all {
    display: block;
    padding: 3px 15px;
    clear: both;
    font-weight: normal;
    line-height: 18px;
    color: #555555;
    white-space: nowrap;
    text-decoration: none;
}

.ui-state-hover, .ui-state-active {
    color: #ffffff;
    text-decoration: none;
    background-color: #0088cc;
    border-radius: 0px;
    -webkit-border-radius: 0px;
    -moz-border-radius: 0px;
    background-image: none;
}

【讨论】:

  • 当在导航栏中使用输入字段时,宽度最初比搜索框宽。设置“top:0”为我解决了这个问题。
  • 这正是我想要的!
  • 除非你不介意一个永远扩展的列表,否则我会在上面放一个max-height: 50vh 和一个overflow-y: auto
  • 注意,这不限于与引导程序一起使用。它使用 jQuery 和 jQuery3 类
  • 我想知道是否有一种方法可以为该列表分配一个 html id,以便您可以在同一页面上以不同的方式设置多个列表的样式。
【解决方案3】:

根据@md-nazrul-islam 的回复,这是我对 SCSS 所做的:

ul.ui-autocomplete {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 1000;
    float: left;
    display: none;
    min-width: 160px;
    margin: 0 0 10px 25px;
    list-style: none;
    background-color: #ffffff;
    border: 1px solid #ccc;
    border-color: rgba(0, 0, 0, 0.2);
    //@include border-radius(5px);
    @include box-shadow( rgba(0, 0, 0, 0.1) 0 5px 10px );
    @include background-clip(padding-box);
    *border-right-width: 2px;
    *border-bottom-width: 2px;

    li.ui-menu-item{
        padding:0 .5em;
        line-height:2em;
        font-size:.8em;
        &.ui-state-focus{
            background: #F7F7F7;
        }
    }

}

【讨论】:

    【解决方案4】:

    您可以使用 !important 覆盖您自己的 css 中的类,例如如果你想摆脱圆角。

    .ui-corner-all
    {
    border-radius: 0px !important;
    }
    

    【讨论】:

    • 两点备注:0后面不需要设置单位。 0 始终为 0。其次,设置 !important 并不被视为良好的编码风格。您可能会遇到 !important 稍后无意中覆盖您的样式的级联。