无法使用HTML / CSS和jQuery创建导航菜单

时间:2015-04-17 13:56:04

标签: jquery css

我刚刚在codecademy上完成了HTML / CSS,JavaScript,jQuery和php的基础知识。 我想在codecademy codebits中建立一个带有html / css和jquery的网站。现在我的导航菜单很奇怪。 主导航菜单(主要)似乎没问题。但是当将鼠标悬停在其中一个具有子菜单的菜单上时,主菜单会与下拉菜单一起下移。 我整天都试图解决它,但无济于事:( 我试过显示:内联,显示:内联块,显示:块但是它们没有帮助。 我也试过设置位置:不同的设置,但他们也没有帮助。 我的HTML似乎对我好,但也许有一些错误。我怀疑我的css,但经过一整天的努力,我已经筋疲力尽了:(

我的HTML脚本:

<!DOCTYPE html>
<html>
<head>
<title>A first complete project</title>
<link type = "text/css" rel = "stylesheet" href = "style.css">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
<script type = "text/javascript" src = "script.js"></script>
</head>

<body>
<div class = "header">  <!--Header Area -->
    <ul class = "mainMenu">  <!-- The main nav menu -->
        <li><a href = "#">Home</a></li>
        <li>About Us</li>
        <li>Contact Us</li>
        <li id = "services">Services 
        <!--Creating sub menu-->
            <ul class = "servicesSubMenu">
                <li>Basic Web Design</li>
                <li>Pro Web Design</li>
                <li>Advanced Web Design</li>
                <li id = "wordpressWebDesign">Wordpress Web 
                Design
                <!--Creating Sub-sub menu-->
                    <ul class = "wordpressSubMenu">
                        <li>Wordpress Installation</li>
                        <li>Wordpress customization</li>
                    </ul> 
                </li>     
            </ul>
        </li>    
    </ul>

</div>

<!--creating div class wrapper for sliderArea-->
<div class = "wrapper">
    <div class = "slideArea"> <!--Creating the slider-->

    </div>
</div>

<!--Creating the main footer-->
<div id = "mainFooter">
    <p>Copyright &copy; 2014 <a href = "https://www.hostbarrack.com">Hostbarrack</a></p>
</div>

</body>

</html>

我的css:

/* ==== Settings for the main body
================================================= */
body {
    background-color: #454545;
}

/*======  Settings for the main nav menu
================================================== */
.mainMenu {
  border-radius: 10px; 
  background-color: #555555;
  font-family: seriff;
  font-weight: bold;
  color: #389803;
  font-size: 17px;
  height: 50px;
  line-height: 30px;
  padding-right: 80px;
}

.mainMenu li {
    position: relative;
    display: inline-block;
    margin-left: 10px;
    margin-top: 10px;
    margin-bottom: 10px;
    list-style: none;
    padding: 0 20px;
}

.mainMenu a {
    text-decoration: none;
    display: block;
    color: #389803;
    height: 40px;
}

/* === Settings for the sub menu of the 'Services' Button
===================================================== */
.servicesSubMenu {
  font-family: seriff;
  font-weight: bold;
  color: #389803;
  font-size: 17px;
  margin-top: 10px;
}

.servicesSubmenu li {
    border: 1px solid red;
    border-radius: 8px;
    list-style: none;
    background-color: #454545;
    height: auto;
    width: 200px;
    padding: 10px;
    margin: 1px;
    display: block;

}

/* === =Settings for the sub menu of 'Wordpress Web design' which is a sub menu of 'Services'
=========================================================*/
.wordpressSubMenu li {
    background-color: #606060;
}

/* ======== Settings for the slider area of home-page.
==================================================== */
.slideArea {
    border-radius: 15px;
    background-color: #909090;
    height: 500px;
    width: auto;
    margin: 10px, 10px, 10px, 10px;
}

/* === Settings for the main footer area 
==================================================== */
#mainFooter {
    text-align: center;
    font-weight: bold;
}

#mainFooter a {
    color: #FEFE79;
/*does not work. check it again and remove this comment after finding the solution*/    
}

我的jQuery代码:

var main = function() {
    $(".servicesSubMenu").hide(); /* Hide sub menu when document
                                    loads */

    /* When hovering over 'Services' button in main nav menu */
    $("#services").hover(function() {
        $(".servicesSubMenu").slideToggle(80);
        $(".wordpressSubMenu").hide(); /* Hide sub-sub menu */
    });

    /* When hovering over sub-sub menu 'Wordpress Web Design'
      inside 'Services button. */
    $("#wordpressWebDesign").hover(function() {
      $(".wordpressSubMenu").slideToggle(80);
    });
}

$(document).ready(main);

您还可以在http://www.codecademy.com/sunoy14/codebits/r316c查看我的代码和测试页 请在全屏和较小的屏幕中查看codebits。显示不同的问题布局。 我非常感谢你的帮助。

谢谢。

2 个答案:

答案 0 :(得分:0)

我在网站上看了你的代码。 您尚未设置位置值。 位置更改将显示的位置,默认情况下,它设置为相对。通过将其更改为绝对值,元素不会受到周围元素的影响。

在CSS文件中尝试此代码。

.servicesSubMenu {
  font-family: seriff;
  font-weight: bold;
  color: #389803;
  font-size: 17px;
  margin-top: 10px;
  position:absolute;
}

答案 1 :(得分:0)

以下是您要求的导航栏的一些代码示例 我不知道这是否是您想要的方式,因为我不使用任何Javascript。

&#13;
&#13;
.navigation {
  background-color: gray;
  list-style-type: none;
  height: 50px;
}
.menu-item {
  display: inline-block;
  width: 80px;
  text-align: center;
  height: 100%;
}
.menu-item {
  padding-top: 15px;
}
.menu-item:hover {
  background-color: #555;
}
.menu-item .sub-item {
  display: none;
}
.menu-item:hover .sub-item {
  position: absolute;
  width: 80px;
  display: block;
    border-bottom: 1px solid black;
  background-color: red;
}
.sub-item: hover {
  display: block;
}
.menu-item .sub-item a {
  display: block;
  height: 20px;
  border-top: 1px solid black;
}
&#13;
<nav>
  <div class="navigation">
    <div class="menu-item">
      <div class="name">Home</div>
      <div class="sub-item">
        <a>link</a>
        <a>link</a>
      </div>
    </div>
    <div class="menu-item">
      <div class="name">Contact</div>
      <div class="sub-item">
        <a>link</a>
        <a>link</a>
      </div>
    </div>
  </div>
</nav>
&#13;
&#13;
&#13;