-1

Ive been making a website with a CSS3 menu. However during the validating process to check if i made no mistakes i broke my CSS3 menu. The menu itself works but theres no drop down menu when hovering "Categorieen" like it did before.

Heres the HTML:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="Content-type" content="text/html;charset=utf-8" />
<title>Website Ronald</title>
<script src="js/jquery.js" type="text/javascript"></script>
<script src="js/jquery.js" type="text/javascript"></script>
<link rel="stylesheet" href="style.css"/>
<style type="text/css">
html {
background: url(images/image2.jpg) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
}
</style>
</head>
<body style="margin:0px;padding:0px;overflow:hidden">
<ul id="menu">
    <li><a href="Home.html" target="frame_a">Home</a></li>
    <li><a href="Categorieen.html" target="frame_a">Categorie&euml;n</a></li>
            <ul>
            <li><a href="Sub/Vliegvelden.html" target="frame_a">Vliegvelden</a></li>
            <li><a href="Sub/Landschappen.html" target="frame_a">Landschappen</a></li>
            <li><a href="Sub/Auto`s.html" target="frame_a">Auto`s</a></li>
            </ul>
    <li><a href="Over.html" target="frame_a">Over</a></li>
 </ul>
<div align="center">
<iframe src="home.html" style="overflow:hidden;overflow-x:hidden;overflow-y:hidden;    height:90%;width:75%;position:absolute;top:60px;left:160px;right:0px;bottom:10px" width="75%" height="90%" name="frame_a" marginheight="5" frameborder="0"></iframe>
</div>
</body>
</html>

And this is the CSS im using:

     #menu, #menu ul {
margin: 0;
padding: 0;
list-style: none;
}
#menu {
width: 960px;
margin: 10px auto;
border: 1px solid #222;
background-color: #111;
background-image: linear-gradient(#444, #111);
border-radius: 6px;
box-shadow: 0 1px 1px #777;
}
 #menu:before,
 #menu:after {
content: "";
display: table;
}

#menu:after {
clear: both;
}

#menu {
zoom:1;
}
#menu li {
float: left;
border-right: 1px solid #222;
box-shadow: 1px 0 0 #444;
position: relative;
}

#menu a {
float: left;
padding: 12px 30px;
color: #999;
text-transform: uppercase;
font: bold 12px Arial, Helvetica;
text-decoration: none;
text-shadow: 0 1px 0 #000;
}

#menu li:hover > a {
color: #fafafa;
}

*html #menu li a:hover { /* IE6 only */
color: #fafafa;
}
#menu ul {
margin: 20px 0 0 0;
_margin: 0; /*IE6 only*/
opacity: 0;
visibility: hidden;
position: absolute;
top: 38px;
left: 0;
z-index: 1;    
background: #444;   
background: linear-gradient(#444, #111);
box-shadow: 0 -1px 0 rgba(255,255,255,.3);  
border-radius: 3px;
transition: all .2s ease-in-out;  
}

#menu li:hover > ul {
opacity: 1;
visibility: visible;
margin: 0;
}

#menu ul ul {
top: 0;
left: 150px;
margin: 0 0 0 20px;
_margin: 0; /*IE6 only*/
box-shadow: -1px 0 0 rgba(255,255,255,.3);      
}

#menu ul li {
float: none;
display: block;
border: 0;
_line-height: 0; /*IE6 only*/
box-shadow: 0 1px 0 #111, 0 2px 0 #666;
}

#menu ul li:last-child {   
box-shadow: none;    
}

#menu ul a {    
padding: 10px;
width: 130px;
_height: 10px; /*IE6 only*/
display: block;
white-space: nowrap;
float: none;
text-transform: none;
}

#menu ul a:hover {
background-color: #0186ba;
background-image: linear-gradient(#04acec, #0186ba);
}
#menu ul li:first-child > a {
border-radius: 3px 3px 0 0;
}

#menu ul li:first-child > a:after {
content: '';
position: absolute;
left: 40px;
top: -6px;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-bottom: 6px solid #444;
}

#menu ul ul li:first-child a:after {
left: -6px;
top: 50%;
margin-top: -6px;
border-left: 0; 
border-bottom: 6px solid transparent;
border-top: 6px solid transparent;
border-right: 6px solid #3b3b3b;
}

#menu ul li:first-child a:hover:after {
border-bottom-color: #04acec; 
}

#menu ul ul li:first-child a:hover:after {
border-right-color: #0299d3; 
border-bottom-color: transparent;   
}

#menu ul li:last-child > a {
border-radius: 0 0 3px 3px;
}
4

1 回答 1

0

由于您的子菜单必须在悬停“Categorieen”时出现,并且您的 CSS 使其可见看起来像#menu li:hover > ul

包含子菜单的<ul>元素必须在<li>代表“Categorieen”内

所以而不是

<li>
    <a href="Categorieen.html" target="frame_a">Categorie&euml;n</a>
</li>
<ul>
    <li><a href="Sub/Vliegvelden.html" target="frame_a">Vliegvelden</a></li>
    <li><a href="Sub/Landschappen.html" target="frame_a">Landschappen</a></li>
    <li><a href="Sub/Auto`s.html" target="frame_a">Auto`s</a></li>
</ul>

你应该有

<li>
    <a href="Categorieen.html" target="frame_a">Categorie&euml;n</a>
    <ul>
        <li><a href="Sub/Vliegvelden.html" target="frame_a">Vliegvelden</a></li>
        <li><a href="Sub/Landschappen.html" target="frame_a">Landschappen</a></li>
        <li><a href="Sub/Auto`s.html" target="frame_a">Auto`s</a></li>
    </ul>
</li>

是代表您更正的菜单的 jsfiddle

于 2013-09-18T18:10:18.690 回答