【问题标题】:customizing the drop down autocomplete box自定义下拉自动完成框
【发布时间】:2011-12-06 03:41:48
【问题描述】:

我正在使用 jquerys autocomplete 小部件,但我在尝试设置搜索内容时下拉框的样式时遇到了一些问题。

我正在尝试将框向下移动一点并更改边框/背景颜色,但一些 JS 正在添加一些覆盖我的 .css 样式的嵌入样式。但我找不到。

我的基础是this one

<ul class="ui-autocomplete ui-menu ui-widget-content" role="listbox" aria-activedescendant="ui-active-menuitem" style="z-index: 11; display: block; width: 139px; top: 44px; left: 1101px; "><li class="ui-menu-item" role="menuitem">

【问题讨论】:

  • 更多您遇到问题的代码会有所帮助。

标签: css jquery-ui-autocomplete


【解决方案1】:

为了避免使用!important,您可以使用 jQuery 添加样式并以这种方式覆盖它们。

$('ul.ui-autocomplete').css({
    color: 'red'
});

另一种解决方案是从 ul 中删除 style 属性。

$('ul.ui-autocomplete').removeAttr('style');

【讨论】:

    【解决方案2】:

    在没有看到您的 css 样式或加载 .css 文件的顺序的情况下,您可以通过使用 Firebug 检查应用了哪些类并将 !important; 添加到您的主要 css 样式来覆盖样式。

    例如

    ul.ui-autocomplete {
    color: red !important;
    }
    

    解决此问题的最佳方法是正确跟踪您的 jQuery 插件是否有任何参数可以帮助您,或者自己剥离 JS 并添加自己的 CSS 样式。

    以上 !important;规则可能是一场噩梦,在某种意义上它是一种黑客行为——但它可能对你有用。

    【讨论】:

      【解决方案3】:

      尝试在你的css中添加margin-topmargin-left

      覆盖topleft 值不好,因为它是根据派生自的文本字段计算的。

      【讨论】:

        【解决方案4】:

        我真的不是 jquery 方面的专家,但我查看了您发送的示例,菜单的样式全部由菜单样式表 (jquery.ui.menu.css强>)。看看下面的链接,我认为有一些信息可以帮助你。

        http://docs.jquery.com/UI/Menu#theming

        您将能够在这些类中自定义下拉菜单的外观。

        «如果需要更深层次的自定义,可以修改 jquery.ui.menu.css 样式表中引用的特定于小部件的类。»来自 jquery 网站。

        【讨论】:

          【解决方案5】:

          尝试使用位置或附加到选项... 你可以参考这里...

          http://jqueryui.com/demos/autocomplete/#option-position

          【讨论】:

            【解决方案6】:

            查看文件jquery.ui.theme.css

            靠近顶部的.ui-widget-content类可用于在自动完成搜索结果框上添加背景颜色,也可以通过该类调整边框和位置。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2011-07-14
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2021-10-09
              • 1970-01-01
              相关资源
              最近更新 更多