html问题,一个div定位问题

时间:2011-09-05 05:38:49

标签: css html

我为我的应用程序实现了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);">&nbsp; &nbsp;<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>

在我们在搜索区域输入任何内容之前,这就是页面的外观: enter image description here

以下是搜索结果div正在做的事情:

enter image description here

基本上,它会在我的主要内容区域中显示菜单。那么如何使用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;
}

enter image description here

2 个答案:

答案 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;
}