我刚刚在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 © 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。显示不同的问题布局。 我非常感谢你的帮助。
谢谢。
答案 0 :(得分:0)
我在网站上看了你的代码。 您尚未设置位置值。 位置更改将显示的位置,默认情况下,它设置为相对。通过将其更改为绝对值,元素不会受到周围元素的影响。
在CSS文件中尝试此代码。
.servicesSubMenu {
font-family: seriff;
font-weight: bold;
color: #389803;
font-size: 17px;
margin-top: 10px;
position:absolute;
}
答案 1 :(得分:0)
以下是您要求的导航栏的一些代码示例 我不知道这是否是您想要的方式,因为我不使用任何Javascript。
.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;