如何转换为CSS下拉菜单

问题描述:

CSS新手。我有一个我想要转换为下拉菜单的水平菜单。如何转换为CSS下拉菜单

这里的CSS:

.menu_container { 
    position:relative; 
} 

ul.semiopaquemenu{ /* main menu UL */ 
    font-family: 'Metrophobic', Arial, serif; font-weight: 800; 
    font-size:18px; 
    width: 100%; 
    background: #ccc; 
    padding: 11px 0 8px 0; /* padding of the 4 sides of the menu */ 
    margin: 0; 
    text-align: left; /* set value to "left", "center", or "right" to align menu accordingly */ 
} 

ul.semiopaquemenu li{ 
    display: inline; 
} 

ul.semiopaquemenu li a{ 
    color:white; 
    padding: 6px 8px 6px 8px; /* padding of the 4 sides of each menu link */ 
    margin-right: 15px; /* spacing between each menu link */ 
    text-decoration: none; 
} 

ul.semiopaquemenu li a:hover, ul.semiopaquemenu li a.selected{ 
    color: #0080FF; 
    background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIwLjgyIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmZmZmZmYiIHN0b3Atb3BhY2l0eT0iMC4xNiIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); /* IE9+ SVG equivalent of linear gradients */ 
    background: -moz-linear-gradient(top, rgba(255,255,255,0.82) 0%, rgba(255,255,255,0.16) 100%); /* fade from white (0.82 opacty) to 0.16 opacity */ 
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0.82)), color-stop(100%,rgba(255,255,255,0.16))); 
    background: -webkit-linear-gradient(top, rgba(255,255,255,0.82) 0%,rgba(255,255,255,0.16) 100%); 
    background: -o-linear-gradient(top, rgba(255,255,255,0.82) 0%,rgba(255,255,255,0.16) 100%); 
    background: -ms-linear-gradient(top, rgba(255,255,255,0.82) 0%,rgba(255,255,255,0.16) 100%); 
    background: linear-gradient(top, rgba(255,255,255,0.82) 0%,rgba(255,255,255,0.16) 100%); 
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#d1ffffff', endColorstr='#29ffffff',GradientType=0); 
    -moz-box-shadow: 0 0 10px #595959; /* CSS3 box shadows */ 
    -webkit-box-shadow: 0 0 10px #595959; 
    box-shadow: 0 0 10px #595959; 
    padding-top: 12px; /* large padding to get menu item to protrude upwards */ 
    padding-bottom: 9px; /* large padding to get menu item to protrude downwards */ 
} 

.semiopaquemenu ul { 
    position:absolute; 
    left:-9999px; 
    top:-9999px; 
    list-style-type:none; 
} 

.semiopaquemenu li:hover { 
    position:relative; 
} 

.semiopaquemenu li:hover ul  { 
    left:0px; 
    top:30px; 
    padding:3px; 
    width:160px; 
} 

.semiopaquemenu li:hover ul li { 
    height:18px; 
    border:none; 
} 

.semiopaquemenu li:hover ul li a { 
    height:18px; 
    padding:0px; 
    display:block; 
    width:158px; 
    line-height:18px; 
    text-indent:5px; 
} 

.semiopaquemenu li:hover ul li a:hover { 
    height:18px; 
} 

这里是我的HTML:

<ul class="semiopaquemenu"> 
<li><a href="#">Home</a></li> 
<li><a href="#" class="selected">Messaging</a></li> 
<li><a href="#">Directory</a></li> 
<li><a href="#">Options</a></li> 
</ul> 

哪有我的菜单项 “选项” 转换为一个下拉???

谢谢!

demo jsBin

添加此行和玩:

CSS:

ul.semiopaquemenu > li > ul{ 
     background:#ccc; 
     padding:15px 20px; 
    } 

    ul.semiopaquemenu > li > ul li { 
     color:white; 
     cursor:pointer; 
     display:block; 
     padding:4px 10px; 
    } 

HTML:

<ul class="semiopaquemenu"> 
    <li><a href="#">Home</a></li> 
    <li><a href="#" class="selected">Messaging</a></li> 
    <li><a href="#">Directory</a></li> 


    <li> 
    <a href="#">Options</a> 
    <ul> 
     <li>Option 1</li> 
     <li>Option 2</li> 
     <li>Option 3</li> 
     <li>Option 4</li> 
    </ul> 
    </li> 
</ul> 

那么,对于初学者来说,你需要一些额外的列表项来实际上有一些“下拉”,所以另一个<ul>。放置它的地方是<li><a href="#">Options</a> RIGHT HERE </li>。为了得到一些事情,只是在这一点上复制/粘贴你已经有了HTML到本身:

<ul class="semiopaquemenu"> 
<li><a href="#">Home</a></li> 
<li><a href="#" class="selected">Messaging</a></li> 
<li><a href="#">Directory</a></li> 
<li><a href="#">Options</a> 
    <ul class="semiopaquemenu"> 
    <li><a href="#">Home</a></li> 
    <li><a href="#" class="selected">Messaging</a></li> 
    <li><a href="#">Directory</a></li> 
    <li><a href="#">Options</a></li> 
    </ul> 
</li> 
</ul> 

与当前的CSS生成此,工作下拉菜单:http://jsfiddle.net/yAmWb/