导航栏定位元素

时间:2013-04-18 17:48:22

标签: html css menu navigation hover

您好我需要构建的内容:Mockup

我坚持导航栏,这是CSS:

/ * CSS Document * /

body {background:#fff url(bg.jpg) repeat-x; margin:0; padding:0; height:1800px; font-        family:Arial, Helvetica, sans-serif;}

#wrapper {width: 1000px; margin: 0 auto;}

#header {height: 400px; width: 1000px; display: block; position: relative; }
#header .logo {position: absolute; width: 374px; height: 221px; display: block; float:     left; cursor: pointer; background: url(logo.png) 0 0 no-repeat transparent; top: 55px;     left: 10px;}
#header .contact-info {position: absolute; width: 293px; height: 133px; display: block;     float: left; cursor: pointer; background: url(contact-info.png) 0 0 no-repeat transparent;     top: 100px; left: 700px;}

ul.mn {
position: absolute;
float: left;
top: 316px;
width: 316px;
margin: 0;
padding: 0;
list-style-type: none;
}

ul.mn li {
float: left;
}

ul.mn li a {
display: block;
float: left;
height: 73px;
margin-left: 6px;
}

ul.mn li a.mn1 {
width: 104px;
background-image: url('mn1.png');
background-position: 0 0;
}

ul.mn li a.mn2 {
width: 212px;
background-image: url('mn2.png');
}


ul.mn li a.active, ul.mn li a:hover {
background-position: 0 73px;
}

HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>RW-Fliesen</title>
<link rel="stylesheet" type="text/css" href="style.css" />



</head>

<body>

<div id="wrapper">

<div id="header_wrapper">

    <div id="header">

        <a href="index.html" class="logo" title="Logo"></a>

        <div class="contact-info" title="contact-info"></div>

        <ul class="mn">
        <li><a href=" " title="" class="mn1 "></a></li>
        <li><a href=" " title="" class="mn2 "></a></li>
        </ul>






    </div>

</div>





</div>



</body>
</html>

当我只有一个导航元素时看起来很好:Navi with only one element

但是当我添加第二个导航元素时,Navi看起来像这样:Navi with more than one element

我们如何解决?

2 个答案:

答案 0 :(得分:1)

我猜您要为每个li标记指定宽度。

ul.mn li a.mn1 {
  width: 104px;  
  background-image: url('mn1.png');
  background-position: 0 0;
}

在上面的代码中,您的宽度为104px,因为HOME的图像宽度为104px。所以猜测你的下一个菜单项将具有更大的宽度,它的父ul不能容纳在一行中。 ul的宽度为316px。

ul.mn {
  position: absolute;
  float: left;
  top: 316px;
  width: 316px;
  margin: 0;
  padding: 0;
  list-style-type: none;
}

您需要增加ul的宽度才能使其正常工作。

答案 1 :(得分:0)

假设您试图模仿您在初始帖子中引用的模型网站。我相信你应该对你的css代码部分进行以下调整,以解决你的菜单栏。你提供了什么:

ul.mn { position: absolute; float: left; top: 316px; width: 978px; margin: 0; padding:0; list-style-type: none; }  

我的建议是:

ul.mn { position: absolute; float: left; top: 316px; width: 850px; margin: 0 auto 0 10px; padding:0; list-style-type: none;}

请注意,我更改了宽度以反映宽度,这是由每个定义的按钮div的组合宽度决定的宽度,从978px到850px,然后我建议不要将所有边距设置为0,而是将前面的0设置为0 ,右侧自动,底部0和左侧10px(因为我从您的模型中看到的菜单左侧是与徽标的左侧对齐)。进行这些更改后,我可以让您的菜单栏很好地放在标题div的底部。

请至少告诉我你的进展情况。我一直在寻找分享想法并了解其他方法问题。我相信这让我们更加聪明。

祝你好运, 史蒂夫