子菜单定位

时间:2013-02-17 21:57:48

标签: html css submenu

(我已经更新了代码以反映工作代码。现在的代码现在可以工作)

我一直在尝试定位子菜单。为了记录,我在上周完成了我的作业,试图完成这项工作,但我认为我正在与父母/孩子的关系搞乱。

我要做的是在页面的一列中放置一个菜单,然后,当悬停时,右侧会出现一个子菜单。问题是我的菜单出现但是当我调整页面大小时,子菜单会跳到这个地方。看起来我的相对和绝对位置是问题,但我不知道在哪里

这是我的CSS代码:

#col1
{
background-color:#000033;
width:15%;
height:100%;
float:left;
color:#FFF000;
font-family: bold;
font-size: 100%;
}


ul.nav li 
{
position:relative;
float:left;
width:100%;
}

ul.nav a
{
display: block;
background-color:#B2B2D9;
margin-right:3%;
margin-bottom:1%;
margin-left:1%;
text-decoration:none;
border-top-color:#FFFFFF;
border-right-color:#E6E6E6;
border-bottom-color:#FFFFFF;
border-left-color:#E6E6E6;
border-top-width: 3%;
border-right-width: 3%;
border-bottom-width: 3%;
border-left-width: 3%;
border-top-style: solid;
border-right-style: solid;
border-bottom-style: solid;
border-left-style: solid;
padding: 2%;
}


ul.nav
{
position:relative;
list-style-type: none;
padding-left:0px;
line-height:1.5em;
}

ul.nav2 a
{
display: block;
background-color:#000033;
border:solid 3px black;
padding:5%; 
margin-right:0px;
margin-bottom:0%;
margin-left:0%;
text-decoration:none;
color:white;
border-top-color:#FFFFFF;    
border-right-color:#E6E6E6;
border-bottom-color:#FFFFFF;
border-left-color:#E6E6E6;
}


ul.nav2
{
position:absolute;
top:0;
left:100%;
display:none;
font-size:100%;
list-style-type: none;
width:8em;
line-height:1.5em;
float: none;
clear: none;
margin: 0px;
}

ul.nav2 li 
{
display:block;
margin-left:-2.8em;
width:100%;
line-height:1.3em;
}

这是我的HTML和JavaScript:

<script>

$(document).ready(function () {
    $('.nav').hover(function (e) {
        $('.nav2').slideDown('normal');
    }, function () {
        $('.nav2').slideUp('normal');
    });
});

</script>
</head>

 <body>

<div id="banner">
<img src="images/banner.jpg" width="100%" alt="banner" />
</div>

<div id="wrapper">


<div id="col1">

<ul class="nav">
<li><a href="http://www.ahome.com">Home</a></li>
<li><a href="http://www.ab.com">About</a></li>

    <ul class="nav2">
  <li><a href="http://www.albio.com">Bio</a></li>
  <li><a href="http://www.acred.com">Credentials</a></li>
  <li><a href="http://www.aled.com">Education</a></li>
  </ul>

<li><a href="http://www.anew.com">New Listings</a></li>
<li><a href="http://www.afeat.com">Featured Home</a></li>
<li><a href="http://www.atow.com">Town Facts</a></li>
<li><a href="http://www.acme.com">Contact Me</a></li>
</ul>


</div>


<div id="main">
"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt 

</div>

</div>
</body>
</html>

如您所见,我的菜单就是问题所在。有人能让我指出正确的方向吗?

1 个答案:

答案 0 :(得分:2)

您可能需要这种方式。如果您能够更改HTML并略微调整CSS,则可以实现此目的。

HTML

<ul class="nav">
    <li>
        <a href="#">Menu 1</a>
        <ul>
            <li><a href="#">Sub Menu Item</a></li>
            <li><a href="#">Sub Menu Item</a></li>
            <li><a href="#">Sub Menu Item</a></li>
        </ul>
    </li>
    <li>
        <a href="#">Menu 2</a>
        <ul>
            <li><a href="#">Sub Menu Item</a></li>
            <li><a href="#">Sub Menu Item</a></li>
            <li><a href="#">Sub Menu Item</a></li>
        </ul>
    </li>
    <li>
        <a href="#">Menu 3</a>
        <ul>
            <li><a href="#">Sub Menu Item</a></li>
            <li><a href="#">Sub Menu Item</a></li>
            <li><a href="#">Sub Menu Item</a></li>
        </ul>
    </li>
</ul>

CSS

* {font-family: "Segoe UI", Tahoma;}
ul.nav {border-bottom: 1px solid #999;}
ul.nav li a {display: block; text-decoration: none; color: #333; padding: 5px; border: 1px solid #fff;}
ul.nav > li:hover {border: 1px solid #666; border-bottom: 1px solid #fff;}
ul.nav li a:hover {background: #ccc; border: 1px solid #999;}
ul.nav > li {display: inline-block; position: relative; border: 1px solid #fff;}
ul.nav > li ul {display: none; position: absolute; left: -1px; width: 150px; border: 1px solid #666; border-top-color: #fff; margin-top: 1px;}
ul.nav > li:hover ul {display: block;}
ul.nav > li ul li {display: block;} /* Vertical Menu */
ul.nav > li ul li {display: inline-block;} /* Horizontal Menu */

小提琴:
http://jsfiddle.net/vMuxA/(垂直菜单)
http://jsfiddle.net/vMuxA/1/(水平菜单)