我尝试过制作下拉菜单。我已经做了很简单的,但是在添加更复杂的CSS之后,现在似乎无法使用这个。我肯定在某处遗漏了一些代码,但不知道在哪里。有谁知道如何让SubItems1,2,3和4从菜单中的Item3下拉?
菜单代码
<body>
<div id = "HorizontalMenu">
<ul class = "fancyNav">
<li><a href = "Item1.php" class = "homeIcon">Item1</a></li>
<li><a href = "Item2.php">Item2</a></li>
<li><a href= "#">Item3</a>
<ul>
<li><a href = "Sub1.php"> SubItem1</a></li><br>
<li><a href = "Sub2.php"> SubItem2</a></li><br>
<li><a href = "Sub3.php"> SubItem3</a></li><br>
<li><a href = "Sub4.php"> SubItem4</a></li>
</ul>
</li>
<li><a href = "Item4.php">Item4</a></li>
</ul>
</div>
</body>
CSS
*{
margin:0;
padding:0; }
html{
background:url('bg_tile.jpg') #333d43; }
body{
background:url('bg_head.jpg') repeat-x top center, url('../img/bg_vert.jpg') repeat-x;
min-height:500px;
font:14px/1.3 'Segoe UI',Arial, sans-serif;
color:#888;
padding:10px; }
.fancyNav{
overflow: hidden;
display: inline-block; }
.fancyNav li{
background-color: #f0f0f0;
background-image: -webkit-gradient(linear,left top, left bottom,from(#fefefe), color-stop(0.5,#f0f0f0), color-stop(0.51, #e6e6e6));
background-image: -moz-linear-gradient(#fefefe 0%, #f0f0f0 50%, #e6e6e6 51%);
background-image: -o-linear-gradient(#fefefe 0%, #f0f0f0 50%, #e6e6e6 51%);
background-image: -ms-linear-gradient(#fefefe 0%, #f0f0f0 50%, #e6e6e6 51%);
background-image: linear-gradient(#fefefe 0%, #f0f0f0 50%, #e6e6e6 51%);
border-right: 1px solid rgba(9, 9, 9, 0.125);
box-shadow: 1px -1px 0 rgba(255, 255, 255, 0.6) inset;
-moz-box-shadow: 1px -1px 0 rgba(255, 255, 255, 0.6) inset;
-webkit-box-shadow: 1px -1px 0 rgba(255, 255, 255, 0.6) inset;
position:relative;
float: left;
list-style: none; }
.fancyNav li:after{
content:'.';
text-indent:-9999px;
overflow:hidden;
position:absolute;
width:100%;
height:100%;
top:0;
left:0;
z-index:1;
opacity:0;
background-image:-webkit-gradient(linear, left top, right top,
from(rgba(168,168,168,0.5)),color-stop(0.5,rgba(168,168,168,0)),
to(rgba(168,168,168,0.5)));
background-image:-moz-linear-gradient(left, rgba(168,168,168,0.5),
rgba(168,168,168,0) 50%, rgba(168,168,168,0.5));
background-image:-o-linear-gradient(left, rgba(168,168,168,0.5),
rgba(168,168,168,0) 50%, rgba(168,168,168,0.5));
background-image:-ms-linear-gradient(left, rgba(168,168,168,0.5),
rgba(168,168,168,0) 50%, rgba(168,168,168,0.5));
background-image:linear-gradient(left, rgba(168,168,168,0.5), rgba(168,168,168,0)
50%, rgba(168,168,168,0.5));
box-shadow:-1px 0 0 #a3a3a3,-2px 0 0 #fff,1px 0 0 #a3a3a3,2px 0 0 #fff;
-moz-box-shadow:-1px 0 0 #a3a3a3,-2px 0 0 #fff,1px 0 0 #a3a3a3,2px 0 0 #fff;
-webkit-box-shadow:-1px 0 0 #a3a3a3,-2px 0 0 #fff,1px 0 0 #a3a3a3,2px 0 0 #fff;
-moz-transition:0.25s all;
-webkit-transition:0.25s all;
-o-transition:0.25s all;
transition:0.25s all; }
.fancyNav li:first-child{
border-radius: 4px 0 0 4px; }
.fancyNav li:first-child:after,
.fancyNav li.selected:first-child:after{
box-shadow:1px 0 0 #a3a3a3,2px 0 0 #fff;
-moz-box-shadow:1px 0 0 #a3a3a3,2px 0 0 #fff;
-webkit-box-shadow:1px 0 0 #a3a3a3,2px 0 0 #fff;
border-radius:4px 0 0 4px; }
.fancyNav li:last-child{
border-radius: 0 4px 4px 0; }
.fancyNav li:last-child:after,
.fancyNav li.selected:last-child:after{
box-shadow:-1px 0 0 #a3a3a3,-2px 0 0 #fff;
-moz-box-shadow:-1px 0 0 #a3a3a3,-2px 0 0 #fff;
-webkit-box-shadow:-1px 0 0 #a3a3a3,-2px 0 0 #fff;
border-radius:0 4px 4px 0; }
.fancyNav li:hover:after,
.fancyNav li.selected:after,
.fancyNav li:target:after{
opacity:1;
}
.fancyNav:hover li.selected:after,
.fancyNav:hover li:target:after{
opacity:0;
}
.fancyNav li.selected:hover:after,
.fancyNav li:target:hover:after{
opacity:1 !important;
}
.fancyNav li a{
color: #5d5d5d;
display: inline-block;
font: 20px/1 Lobster,Arial,sans-serif;
padding: 12px 35px 14px;
position: relative;
text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.6);
z-index:2;
text-decoration:none !important;
white-space:nowrap;
}
.fancyNav a.homeIcon{
background:url('home.png') no-repeat center center;
display: block;
overflow: hidden;
padding-left: 12px;
padding-right: 12px;
text-indent: -9999px;
width: 16px;
}
h1,h2{
color: #fff;
line-height: 1;
background-color: #222;
font-family: 'Segoe UI Light','Segoe UI',Arial,sans-serif;
font-weight: normal;
margin: 0 auto;
position: absolute;
left: 50%;
margin-left: -446px;
}
h1{
font-size: 36px;
padding: 5px 15px 10px;
top: 0;
}
h2{
font-size: 14px;
padding: 4px 13px 9px 11px;
top: 51px;
}
header{
display:block;
margin-top:50px;
position:relative;
}
nav{
display: block;
margin: 300px auto 0;
text-align: center;
width: 600px;
}
nav ul{
display: none;
list-style: none;
margin: 0;
padding: 0;
}
nav:hover ul{
display: block
}
nav ul li{
width: 10em; }
nav ul li:hover{
color: #5d5d5d;
display: inline-block;
font: 20px/1 Lobster,Arial,sans-serif;
padding: 12px 35px 14px;
position: relative;
text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.6);
z-index:2;
text-decoration:none !important;
white-space: nowrap;
overflow: hidden;
}
footer{
color: #BBBBBB;
font-size: 15px;
line-height: 1.6;
padding: 60px 20px 0;
text-align: center;
display:block;
}
footer b{
color: #888888;
display: block;
font-size: 10px;
font-weight: normal;
}
a, a:visited {
text-decoration:none;
outline:none;
color:#54a6de;
}
a:hover{
text-decoration:underline;
}
答案 0 :(得分:1)
首先,删除子ul列表中的<br/>
标记。然后删除.fancyNav CSS样式的overflow: hidden;
属性。然后将此位添加到CSS:
.fancyNav li > ul {
display: none;
position: absolute;
left: 0;
}
.fancyNav li:hover > ul {
display: block;
border-radius: 0 !important;
}
.fancyNav li > ul li {
float: none;
border-radius: 0 !important;
}
这是Working Demo。它不会加载你的背景图片,但你明白了。