我有一个带有自动建议下拉菜单的输入。我遇到的问题是当页面被缩放时,ul从输入字段稍微移动,因此它不再与输入字段平行或齐平。有没有更好的方法可以做到这一点?我在这里有代码,并且我做了jsfiddle来演示。
.suggestionsBox
{
position:absolute;
top:24px;
left:37px;
width:200px;
padding:0px;
background-color:fff;
}
.suggestionList
{
margin:0px;
padding:0px;
}
.suggestionList ul li
{
list-style:none;
margin: 0px;
padding:6px;
}
.suggestionList ul li:hover
{
background-color: #DAD6D6;
color:#000;
}
ul
{
font-size:12px;
padding:0;
margin:0;
border:1px solid grey;
border-top:none;
}
.load
{
background-position:right;
background-repeat:no-repeat;
}
table
{
border-collapse:collapse;
}
#suggest
{
position:relative;
}
#email
{
outline: none;
width:200;color:grey;
border:1px solid grey;
padding:2;
}
<div id = "suggest">
<div>
<table>
<td>email:</td>
<td><input type = "text" id = "email" autocomplete = "off" placeholder = "type something then zoom" /></td>
</table>
<div class="suggestionsBox" id = "suggestions" style = "display: none;">
<div class="suggestionList" id = "suggestionsList">
</div></div></div></div>
和javascript:
$('#email').bind('keyup',function() {
if($('#email').val().length >0) {
$('#suggestions').show();
$('#suggestionsList').html("<ul><li>now zoom in or out</li><ul>");
}else $('#suggestions').hide();
});
答案 0 :(得分:1)
是的,所以问题在于每个浏览器处理缩放文本位的方式。请注意,大多数浏览器可以很好地处理放大和缩小div以及其他固定大小的元素,但是因为文本,字体更具体,更改字符宽度非常显着,所以会出现类似于你所拥有的不一致。
通过将容器div设置为position: relative
并将输入和自动完成div保持在一起,可以轻松解决问题。舒适地?是的,舒服。
Here's a JSFiddle应该清楚地解释一切。