HTML Table 导航栏的下拉菜单

HTML Dropdown for Table Nav Bar

如果这是一个重复的问题,我很抱歉,但我似乎无法在任何地方找到答案。任何搜索都会弹出带有

的下拉菜单
<nav></nav>

假设这是我的 table(用作导航栏):

<table class="nav">
<tr>
<td><a href="index.html">Home</a></td>
<td><a href="/Videos">All</a></td>
<td><a href="spec.html">Specification</a></td>
<td><a href="chem.html">Chemistry</a></td>
<td><a href="bio.html">Biology</a></td>
<td><a href="phy.html">Physics</a></td>
<td><a href="feedback.html">Feedback</a></td>
<td><a href="donate.html">Donate</a></td>
</tr>
</table>

CSS:

table.nav {
    border: 2px solid white;
    background-color: black;
}

如何才能使鼠标悬停在其上时显示带有链接的下拉菜单?我想这样做的原因是样式和方便。

您不必使用 javascript。此外,我不建议为此使用表格,但这是您的选择。看这个例子:

.nav {
    border: 2px solid white;
    background-color: black;
}

.nav td { position: relative; }

.nav table,
.nav ul { 
    display: none;
    position: absolute;
    list-style: none;
    margin: 0;
    padding: 0;
    width: 300px;
    left: 0;
}

.nav td:hover table { display: table; /* or display: block; */ }
.nav td:hover ul { display: block; }
<table class="nav">
    <tr>
        <td>
            <a href="index.html">Home</a>
        </td>
        <td>
            <a href="/Videos">All</a>
            <ul>
                <li><a href="#">Item in list</a></li>
                <li><a href="#">Item in list</a></li>
            </ul>
        </td>
        <td><a href="spec.html">Specification</a></td>
        <td>
            <a href="chem.html">Chemistry</a>
            <table>
                <tr>
                    <td><a href="#">Item in table</a></td>
                </tr>
                <tr>
                    <td><a href="#">Item in table</a></td>
                </tr>
            </table>
        </td>
        <td><a href="bio.html">Biology</a></td>
        <td><a href="phy.html">Physics</a></td>
        <td><a href="feedback.html">Feedback</a></td>
        <td><a href="donate.html">Donate</a></td>
</tr>
</table>

我强烈建议您为此使用列表,尤其是当内容是由某种 PHP 代码的 CMS 动态创建时。一个 simpel CSS 唯一的解决方案 是在悬停时显示的列表项 中创建列表,我自己过去在一些 simpel Wordpress 菜单上使用过这个。

对于样式你可以使用这样的东西

body {
    margin: 0px;
    padding: 0px;
}

nav ul {
    margin: 0px;
    padding: 0px;
    float: left;
    list-style-type: none;
}

nav ul li {
    padding: 20px;
    float: left;
}

nav ul li ul {
    display: none;
}

nav ul li ul li {
    width: 100%;
    padding: 0px;
    display: block;
}

nav ul li:hover > ul {
    position: absolute;
    display: block;
}

最后一部分nav ul li:hover告诉显示nav ul li uldisplay: nonedisplay: block,菜单项应该出现。

您可以使用以下 HTML 标记。当然,您必须做一些造型才能使其更具吸引力。

<nav>
    <!-- Start the listing of main items -->
    <ul>
        <li>Menu item 1</li>
        <li>Menu item 2
            <!-- Sub items include -->
            <ul>
                <li>Menu item 2.1</li>
                <li>Menu item 2.2</li>
            </ul>
        </li>
        <li>Menu item 3</li>
    </ul>
</nav>

我之前测试过这段代码,应该可以。希望这会对您有所帮助,否则您将不得不重新考虑使用 cr0ss 所建议的 Javascript。