0

我有代码:

<div class='selectAnAction'>
   <ul>
      <li class='actionSelect'><span>Select an Action</span></li>
      <li class='action' onclick='location.href=\"/post.php?key=".$row['hash']."\";'>post</li>
      <li class='action' onclick='location.href=\"/adpreview.php?key=".$row['hash']."\";'>preview</li>
      <li class='action' onclick='location.href=\"/adupdate.php?key=".$row['hash']."\";'>edit</li>
      <li class='action' onclick='location.href=\"/addelete.php?key=".$row['hash']."\";'>archive</li>
   </ul>
</div>

我有这个CSS:

.selectAnAction ul { 
    display: block;
    background-image: url("/images/selectAnAction-dropdown.png");
    background-position: 0px -200px;
    background-repeat: repeat-x;
    border: 1px solid #FFFFFF;
    box-shadow: 0px 0px 3px #CCCCCC;
    font-size: 0.75em;
    list-style: none outside none;
    margin: 0px;
    overflow: hidden;
    padding: 0px;
    text-indent: 0px;
    width: 120px;
    color:white;
}
ul { 
display: block;
}
.selectAnAction ul li.actionSelect { 
background: url("/images/selectAnAction-bg.png") repeat-x transparent;
font-weight: bold;
 }
.selectAnAction ul li:first-child { 
display: block;
 }

.selectAnAction ul li { 
display: none;
margin: 0px;
text-indent: 0px;
width: 120px;
background-color:grey;
}
.selectAnAction:hover  ul li{
display: block;
margin: 0px;
text-indent: 0px;
width: 120px;
}
.selectAnAction ul { 
font-size: 0.75em;
list-style: none outside none;
}

.selectAnAction ul li { 
display: none;
margin: 0px;
text-indent: 0px;
width: 100%;
padding-left:10px;
font-family:"Times New Roman",Georgia,Serif;
font-size:1.3em;
text-align:left;
}

.action:hover {
    background-color:black;
    cursor:pointer;
}

我得到的是一个动作菜单。首先,我只看到 LI“选择选项”。鼠标悬停 - 它显示其他选项(发布、编辑、存档等)
我在页面上有很多这样的菜单。

我想修复 .action 元素的位置,这样它们就不会影响网站其余部分的设计(因为现在当它们变得可见时 - 网站的其他元素也会移动)。

所以我试图添加类似的东西:

.action {
    position:absolute;
}

但是发生的情况是所有 .action 元素都显示在彼此之上 - 就在第一个 LI (.actionSelect) 之后。
所以现在我试图让它们不是一个接一个地显示,而是一个接一个地显示,但位置是绝对的。有什么好办法吗?(mb someting like top:+20px;)
Position: relative 不起作用 - 这样,当 .action 元素变得可见时 - 它们将移动所有其他元素。也不能使用硬绝对定位(顶部:100px),因为我在页面上有很多这样的列表。

4

2 回答 2

0

您想绝对定位 ul,然后将操作 select 移到 ul 之外作为父元素。如果要将选择保留在 ul 中,则应该为选项设置一个嵌套的 ul。确保添加位置:相对于选项列表的父项。

<div class='selectAnAction'>
   <ul>
     <li class='actionSelect'>
         <span>Select an Action</span></li>
         <ul class="optionMenu">
            <li class='action' onclick='location.href=\"/post.php?key=".$row['hash']."\";'>post</li>
            <li class='action' onclick='location.href=\"/adpreview.php?key=".$row['hash']."\";'>preview</li>
            <li class='action' onclick='location.href=\"/adupdate.php?key=".$row['hash']."\";'>edit</li>
            <li class='action' onclick='location.href=\"/addelete.php?key=".$row['hash']."\";'>archive</li>
         </ul>
     </li>
   </ul>
</div>
于 2012-04-05T00:26:14.633 回答
0

位置:绝对应该在.selectAnAction ul li ul我相信

看看这个网站做下拉菜单http://www.htmldog.com/articles/suckerfish/dropdowns/

于 2012-04-04T21:26:17.510 回答