我为我的应用程序实现了facebook样式搜索建议功能。但是,我在这里面临一些问题。
i)下面是搜索框和结果div代码:
<div align="right" style=" width:300px; float:right; margin-right:30px">
<input type="text" id="searchbox" class="searchbox" maxlength="100" style="color: rgb(170, 170, 170);"> <img src="../../../asset/images/search.png" style="margin:0 0 -5px 2px"><br><br>
<input type="hidden" value="http://www.plus-one-me.com/search/google/interests" id="formurl" name="formUrl">
<div id="display">
</div>
</div>
搜索结果会显示在 #display div中,如下所示:
<div id="display" style="display: block;">
<div class="display_box" align="left"> Cakephp </div>
<div class="display_box" align="left"> Myspace </div>
<div class="display_box" align="left"> Php </div>
</div>
在我们在搜索区域输入任何内容之前,这就是页面的外观:
以下是搜索结果div正在做的事情:
基本上,它会在我的主要内容区域中显示菜单。那么如何使用CSS解决这个问题?
以下是样式:
后台菜单div的(包含选项主页,历史和设置
.menuBar .submenu {
padding:4px 12px 5px 12px;
margin-right:8px;
border:2px solid #EEE;
text-decoration:none;
display:inline-block;
float:left;
font-size:13px;
-moz-border-radius:40px;
border-radius:40px;
-webkit-border-radius:40px;
-moz-box-shadow:0 1px 3px #777;
-webkit-box-shadow:0 2px 3px #777;
box-shadow:0 2px 3px #777;
color:#333;
background: -webkit-gradient(linear, 0 0, 0 70%, from(#765), to(#FFF));
background: -webkit-linear-gradient(#000, #FFF 70%);
background: -moz-linear-gradient(#BBB, #FFF 100%);
background: -ms-linear-gradient(#765, #FFF 70%);
background: -o-linear-gradient(#765, #FFF 1000%);
background: linear-gradient(#765, #FFF 70%);
-pie-background: linear-gradient(#765, #FFF 70%);
}
我的搜索框:
#searchbox {
border: 1px solid #000000;
padding: 3px;
width: 250px;
}
以及各个结果的display_box:
.display_box {
border-top: 1px solid #DEDEDE;
font-size: 12px;
height: 30px;
padding: 4px;
}
答案 0 :(得分:4)
下拉菜单必须应用position:absolute
。这会将其从页面流中移除,因此不会影响其他元素。
答案 1 :(得分:1)
正如@Galen建议的那样,试试css:
#display {
position: absolute;
}
你可能希望改为使用的html更像是
<ul id="display">
<li>result</li>
<li>result</li>
<li>result</li>
</ul>
如果你这样做了,你就会有
的css#display {
position: absolute;
list-style-type: none; list-style: none;
margin: 0; padding: 0;
}
#display li {
display: block;
border-top: 1px solid #DEDEDE;
font-size: 12px;
height: 30px;
padding: 4px;
}