【问题标题】:how to create vertical menu and show their submenu on relative pages horizontally如何创建垂直菜单并在相关页面上水平显示其子菜单
【发布时间】:2015-07-25 01:57:57
【问题描述】:

我很难为我想在其中显示我的菜单的网站创建导航:

  • 菜单 1
  • 菜单 2
  • 菜单 3
  • 菜单 4
  • 菜单 5

和他们的相对主菜单页面上的子菜单水平像这样:

  SubMenu 1.1 | SubMenu 1.2 | SubMenu 1.3 | SubMenu 1.4 | SubMenu 1.5 | ...

我想在这里提一下,我有一个单页站点,它使用 jquery ajax 将页面动态加载到 div 中,并且这些页面只包含一些我想要在那里的内容,并且没有其他额外的内容或 html 标签像<html> <head><body> 等等,我想要什么?假设当我点击Menu 1 并加载Menu 1 时,它们的子菜单(如SubMenu 1.1SubMenu 1.12)应该在该页面中水平打开,同时菜单1 必须保持活动状态!请看下面的图片。 这是我到目前为止的代码,我在下拉列表中看到了这个jsfiddle

<nav>
    <ul>
        <li><a href="#Menu 1">Menu 1</a>
            <ul>
                <li><a href="#SubMenu 1.1">SubMenu 1.1</a></li>
                <li><a href="#SubMenu 1.2">SubMenu 1.2</a></li>
                <li><a href="#SubMenu 1.3">SubMenu 1.3</a></li>
                <li><a href="#SubMenu 1.4">SubMenu 1.4</a></li>
                <li><a href="#SubMenu 1.5">SubMenu 1.5</a></li>
                <li><a href="#SubMenu 1.6">SubMenu 1.6</a></li>
                <li><a href="#SubMenu 1.7">SubMenu 1.7</a></li>
                <li><a href="#SubMenu 1.8">SubMenu 1.8</a></li>
                <li><a href="#SubMenu 1.9">SubMenu 1.9</a></li>
                <li><a href="#SubMenu 1.10">SubMenu 1.10</a></li>
                <li><a href="#SubMenu 1.11">SubMenu 1.11</a></li>
                <li><a href="#SubMenu 1.12">SubMenu 1.12</a></li>
            </ul>
        </li>
        <li><a href="#Menu 2">Menu 2</a>
            <ul>
                <li><a href="#SubMenu 2.1">SubMenu 2.1</a></li>
                <li><a href="#SubMenu 2.2">SubMenu 2.2</a></li>
                <li><a href="#SubMenu 2.3">SubMenu 2.3</a></li>
                <li><a href="#SubMenu 2.4">SubMenu 2.4</a></li>
                <li><a href="#SubMenu 2.5">SubMenu 2.5</a></li>
                <li><a href="#SubMenu 2.6">SubMenu 2.6</a></li>
                <li><a href="#SubMenu 2.7">SubMenu 2.7</a></li>
                <li><a href="#SubMenu 2.8">SubMenu 2.8</a></li>
                <li><a href="#SubMenu 2.9">SubMenu 2.9</a></li>
                <li><a href="#SubMenu 2.10">SubMenu 2.10</a></li>
                <li><a href="#SubMenu 2.11">SubMenu 2.11</a></li>
                <li><a href="#SubMenu 2.12">SubMenu 2.12</a></li>
            </ul>
        </li>
        <li><a href="#Menu 3">Menu 3</a>
            <ul>
                <li><a href="#SubMenu 3.1">SubMenu 3.1</a></li>
                <li><a href="#SubMenu 3.2">SubMenu 3.2</a></li>
                <li><a href="#SubMenu 3.3">SubMenu 3.3</a></li>
                <li><a href="#SubMenu 3.4">SubMenu 3.4</a></li>
                <li><a href="#SubMenu 3.5">SubMenu .5</a></li>
                <li><a href="#SubMenu 3.6">SubMenu 35.6</a></li>
                <li><a href="#SubMenu 3.7">SubMenu 3.7</a></li>
                <li><a href="#SubMenu 3.8">SubMenu 3.8</a></li>
                <li><a href="#SubMenu 3.9">SubMenu 3.9</a></li>
                <li><a href="#SubMenu 3.10">SubMenu 3.10</a></li>
                <li><a href="#SubMenu 3.11">SubMenu 3.11</a></li>
                <li><a href="#SubMenu 3.12">SubMenu 3.12</a></li>
            </ul>
        </li>
        <li><a href="#Menu 4">Menu 4</a>
            <ul>
                <li><a href="#SubMenu 4.1">SubMenu 4.1</a></li>
                <li><a href="#SubMenu 4.2">SubMenu 4.2</a></li>
                <li><a href="#SubMenu 4.3">SubMenu 4.3</a></li>
                <li><a href="#SubMenu 4.4">SubMenu 4.4</a></li>
                <li><a href="#SubMenu 4.5">SubMenu 4.5</a></li>
                <li><a href="#SubMenu 4.6">SubMenu 4.6</a></li>
                <li><a href="#SubMenu 4.7">SubMenu 4.7</a></li>
                <li><a href="#SubMenu 4.8">SubMenu 4.8</a></li>
                <li><a href="#SubMenu 4.9">SubMenu 4.9</a></li>
                <li><a href="#SubMenu 4.10">SubMenu 4.10</a></li>
                <li><a href="#SubMenu 4.11">SubMenu 4.11</a></li>
                <li><a href="#SubMenu 4.12">SubMenu 4.12</a></li>
            </ul>
        </li>
        <li><a href="#Menu 5">Menu 5</a>
            <ul>
                <li><a href="#SubMenu 5.1">SubMenu 5.1</a></li>
                <li><a href="#SubMenu 5.2">SubMenu 5.2</a></li>
                <li><a href="#SubMenu 5.3">SubMenu 5.3</a></li>
                <li><a href="#SubMenu 5.4">SubMenu 5.4</a></li>
                <li><a href="#SubMenu 5.5">SubMenu 5.5</a></li>
                <li><a href="#SubMenu 5.6">SubMenu 5.6</a></li>
                <li><a href="#SubMenu 5.7">SubMenu 5.7</a></li>
                <li><a href="#SubMenu 5.8">SubMenu 5.8</a></li>
                <li><a href="#SubMenu 5.9">SubMenu 5.9</a></li>
                <li><a href="#SubMenu 5.10">SubMenu 5.10</a></li>
                <li><a href="#SubMenu 5.11">SubMenu 5.11</a></li>
                <li><a href="#SubMenu 5.12">SubMenu 5.12</a></li>
            </ul>
        </li>
    </ul>
</nav>

这是css

nav li {
    display:inline-block;
    padding:0 0.4em;
    height:1.4em; line-height:1.4em;
    position:relative;
}

nav li.sub:after { content:'\25ba'; float:right; vertical-align:middle; font-size:50% }

nav > ul > li     { cursor:default }
nav li ul         { display:none }
nav li li         { display:block; width:8em }
nav li:hover > ul { display:block; position:absolute; top:1.4em;    left:-1px; width:8em; z-index:10 }
nav li li:hover ul{ left:8em; top:-1px }

nav li       { color:black; background:#C2C2C2; border:1px solid #121314; }
nav li li    { color:black; background:#C2C2C2; border-color:#696 }
nav li li li { color:black; background:#C2C2C2; border-color:#669 }

nav li:hover       { background:#828282; color:#fee }
nav li li:hover    { background:#828282; color:#efe }
nav li li li:hover { background:#828282; color:#eef }

nav li li { border-top-width:0 }
nav li li:first-child { border-top-width:1px }

请看这张图以加深理解!

感谢任何帮助,如有需要,将提供任何进一步的细节。谢谢

【问题讨论】:

  • 只是想让你知道,我已经编辑了你那该死的一团乱七八糟的代码,任何想要帮助的人都无法阅读。此处请求帮助的帖子应具有适当的可读性,以免给人们提供任何进一步的帮助。我也很快发布解决方案。
  • 感谢您的审查,并为我的混乱感到抱歉!下次我会照顾的。

标签: html css menu


【解决方案1】:

问题是您分配了错误的几个位置(相对然后给 li 太大的尺寸。您还需要分配最后一个 li 需要显示:block 而第一个是 inline-block .

nav > ul > li {
    display: block;
}

nav li li {
    display: inline-block;
}

http://jsfiddle.net/filipetedim/duagvm3h/9/

【讨论】:

  • 感谢您的回答,但我忘了提到我有一个单页网站,可以使用 jquery ajax 将页面动态加载到 div 中,并且这些页面仅包含我想要的一些内容,没有其他内容额外的内容或 html 标签,如 &lt;html&gt; &lt;head&gt;&lt;body&gt; 等,我想要什么?假设当我点击Menu 1 并加载Menu 1 时,它们的子菜单(如SubMenu 1.1 upto SubMenu 1.12)应该在该页面中水平打开,同时menu 1 必须保持活动状态!请看我刚刚添加到帖子中的图片。
  • 请再次阅读我的问题,因为我刚刚对其进行了编辑,请尝试了解我真正想要的是什么!此外,我还添加了一张图片。
  • 那么你想要的是,当你点击一个菜单时,它会在侧面但水平地显示另一个菜单?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多