我在MVC Razor中创建了一个页面,其中包含一个文本框,并且具有自动完成功能。我的问题是自动填充结果在第一次使用时显示在文本框的下方(如this picture所示),但随后出现在正确的位置(即正好位于文本框下方)。为什么会这样?
我的CSS如下:
.ui-autocomplete {
position: absolute;
top: 100%;
left: 0;
z-index: 2000;
float: left;
display: block;
min-width: 160px;
_width: 160px;
padding: 0px 0;
margin: 2px 0 0 0;
list-style: none outside 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;
}
我的HTML如下:
<input class="contentPicker input-xxlarge ui-autocomplete-input valid"
id="Content" name="Content" placeholder="Select a content"
type="text" value="" autocomplete="off">
答案 0 :(得分:1)
你不应该从jquery ui覆盖任何定位css。当然,它会使事情表现得很奇怪。
第一次显示列表时,正在读取你的css,但后续搜索可能会用内联样式覆盖你的css
jquery-ui
是即插即用解决方案,如果您在页面中包含jquery-ui css文件,则不需要执行任何操作。他们有一个非常先进的主题滚轮,为您照顾所有的造型,所以你不必乱用它