0

我想有一个相同风格的下拉子菜单,我知道这很简单,但我对制作网站还是新手,我自己无法弄清楚。

这是我的 HTML 文件的顶部:

    <!DOCTYPE html>
<html>
<head>
<title>Startpagina</title>
    <LINK href="../CSS/stylesheet.css" rel=stylesheet>
</head>
<body>
<div class="schikking">
    <img src="../Images/bibram.png" alt="Logo van de bib" height="90" width="170">
    <!-- navigatie -->
        <nav>
            <ul>
                <li><a href="./index.html"><span class ="s2">Startpagina</span></a></li>
                <li><a href="./aanwinsten.html">Aanwinsten</a></li>
                <li><a href="./catalogus.html">Catalogus</a>
                    <ul class="sub">
                        <li><a href="#">Pages</a></li>
                        <li><a href="#">Archives</a></li>
                        <li><a href="#">New Posts</a></li>
                    </ul>
                </li>
                <li><a href="./uitlening.html">Uitlening</a></li>
                <li><a href="./reservatie.html">Reservatie</a></li>
                <li><a href="./suggestie.html">Suggestie</a></li>
                <li><a href="./contact.html">Contact</a></li>
            </ul>
        </nav>

和我的 CSS 文件的很大一部分:

.schikking {
    margin: 0 auto;
    padding: 30px 0px 0px 0px;
    max-width: 1010px;
}

.content {
    background-color: red;
    background-color: rgba(147, 4, 0, 0.84);
    border: 1px solid black;
}

nav li
{
    display: inline;
    padding-right: 8px;

}
nav {
    text-align: center;
    margin: -20px 0px 0px 0px;

}
nav ul{
    background-color: rgba(126, 4, 0, 0.79);
    border: 1px solid black;


}
nav ul li{
    display: inline;

}
nav ul li a{
    padding-left: 1em;
    padding-right: 1em;
    font-size: 12px;
    font-family: Arial, Helvetica, sans-serif;
    text-decoration: none;
    color: lightgray;
}
nav ul li a:hover{
    color: #999999;

}

nav ul ul{display: none; position: relative;}
nav li ul li{float:none;display: inline-block; }
nav ul li:hover ul  {display: inline-block;}

这是它看起来如何的图片:

正常:http : //gyazo.com/8f6553245b736feee8cc5ebf8d4a030c 悬停在“目录”上:http: //gyazo.com/662eee4bbbb2ea2318925be76b3722d2

4

4 回答 4

0

不要自己做。我使用这个 jquery 插件,它很棒:

超级鱼

于 2013-10-25T09:41:26.353 回答
0

如果你有任何问题,我建议你先用谷歌搜索。这是一个生成器(只需选择您想要的并按照说明操作): Css drop down menu maker

我还建议您实际学习该语言并扩展您的知识,以及在将问题发布到此处之前使用谷歌搜索问题。

于 2013-10-25T09:42:34.757 回答
0

HTML:

<nav>
<ul>
    <li><a href="./index.html"><span class ="s2">Startpagina</span></a></li>
    <li><a href="./aanwinsten.html">Aanwinsten</a></li>
    <li><a href="./catalogus.html">Catalogus</a>
        <ul class="sub">
            <li><a href="#">Pages</a></li>
            <li><a href="#">Archives</a></li>
            <li><a href="#">New Posts</a></li>
        </ul>
    </li>
    <li><a href="./uitlening.html">Uitlening</a></li>
    <li><a href="./reservatie.html">Reservatie</a></li>
    <li><a href="./suggestie.html">Suggestie</a></li>
    <li><a href="./contact.html">Contact</a></li>
</ul>

CSS:

nav {
 margin: -20px 0px 0px 0px; 
text-align: center;}
nav ul ul {
display: none;
padding-right: 8px;}
nav ul li:hover > ul {
display: block;}
nav ul {
background-color: red;
border: 1px solid black;  
list-style: none;
position: relative;
display: inline-table;}
nav ul:after {
content: ""; clear: both; display: block;}
nav ul li {
float: left;}
nav ul li:hover a {
color: #999999;}
nav ul li a {
display: block;
padding-left: 1em;
padding-right: 1em;
font-size: 12px;
font-family: Arial, Helvetica, sans-serif;
text-decoration: none;
color: lightgray;}
nav ul ul {
background: #5f6975; border-radius: 0px; padding: 0;
position: absolute; top: 100%;}
nav ul ul li {
float: none;  position: relative;padding: 10px;}
nav ul ul li a {

color: #fff;}
nav ul ul ul {
position: absolute; left: 100%; top:0;}
于 2013-10-25T09:53:03.023 回答
0

你几乎明白了。我只对 CSS 做了一些小改动以使其正常工作。

nav ul li { display: inline-block; height: 100%; }而不是 justdisplay: inline是必需的,以便每个都<li>占据“菜单”的所有高度,否则在底部<li>和子菜单之间会有一个小间隙,:hover因为您不在<li>. inline元素没有height(或width),所以改为display: inline-block.

最后的 CSS 是其他更改的地方。你的代码是:

nav ul ul{display: none; position: relative;}
nav li ul li{float:none;display: inline-block; }
nav ul li:hover ul  {display: inline-block;}

显示代码不需要超过

nav ul li:hover ul {
    display: block;
}

但是要将子菜单定位在其正常流程之外(当前显示在父菜单项旁边),您需要向子菜单添加绝对位置`。

nav ul ul {
    display: none;
    position: absolute;
}

如果您想要一个水平菜单,那应该是所有需要的更改,因为您的规则nav ul li { display: inline-block; }已经应用于子菜单列表项。如果你想要一个垂直菜单,你需要将display后面重置为默认值list-itemblock使用:

nav ul ul li {
    display: block;
}

看演示

于 2013-10-25T16:15:39.680 回答