【问题标题】:Drop Down Menu in CSS not working correctlyCSS中的下拉菜单无法正常工作
【发布时间】:2015-04-30 01:51:52
【问题描述】:

我创建了a joomla template,但下拉菜单打开错误。它正在向下推送我的内容,而不是浏览我的文本。

我的 CSS:

.main_menu
{
    margin-top: 0px;
    margin-bottom: 10px;    
    text-align: center;
}
.main_menu ul
{
    margin: 0px;
    list-style: none;   
    display: inline-block;
}
.main_menu li
{
    margin-right: 5px;  
    width: 100px;   
    text-align: center; 
    display: inline-block;  
    border-radius: 7px;
    -moz-border-radius: 7px;
    -webkit-border-radius: 7px;
    border: 1px solid #000000;
}

.nav-child li
{
    display: none;
}

.main_menu ul:hover .nav-child li
{
    display: inline-block;
}

我的 index.php(由 joomla 自动生成):

<div class="main_menu">
                    <div class="moduletable_menu">
                        <ul class="nav menu">
<li class="item-101 current active"><a href="/index.php" >Home</a></li><li class="item-105"><a href="/index.php/project" >Project</a></li><li class="item-103 deeper parent"><a href="/index.php/partners" >Partners</a><ul class="nav-child unstyled small"><li class="item-111"><a href="/index.php/partners/czech-republic" >Czech Republic</a></li><li class="item-109"><a href="/index.php/partners/belgium" >Belgium</a></li><li class="item-113"><a href="/index.php/partners/germany" >Germany</a></li><li class="item-112"><a href="/index.php/partners/iceland" >Iceland</a></li><li class="item-110"><a href="/index.php/partners/norway" >Norway</a></li></ul></li><li class="item-102 deeper parent"><a href="/index.php/meetings" >Meetings</a><ul class="nav-child unstyled small"><li class="item-114"><a href="/index.php/meetings/10-14-09-2014-czech-republic" >10. - 14.09.2014 Czech Republic</a></li><li class="item-115"><a href="/index.php/meetings/11-13-12-2014-belgium" >11. - 13.12.2014 Belgium</a></li><li class="item-116"><a href="/index.php/meetings/19-21-03-2015-germany" >19. - 21.03.2015 Germany</a></li><li class="item-117"><a href="/index.php/meetings/25-08-31-08-2015-iceland" >25.08 - 31.08.2015 Iceland</a></li><li class="item-118"><a href="/index.php/meetings/26-28-11-2015-czech-republic" >26. - 28.11.2015 Czech Republic</a></li><li class="item-119"><a href="/index.php/meetings/10-13-03-2016-norway" >10. - 13.03.2016 Norway</a></li><li class="item-120"><a href="/index.php/meetings/22-29-05-2016-belgium" >22. - 29.05.2016 Belgium</a></li></ul></li><li class="item-106"><a href="/index.php/activities" >Activities</a></li><li class="item-107"><a href="/index.php/press" >Press</a></li><li class="item-104"><a href="/index.php/downloads" >Downloads</a></li><li class="item-108"><a href="/index.php/contacts" >Contacts</a></li></ul>
        </div>

【问题讨论】:

  • 尝试使用 position:xxx 样式
  • .main_menu li内设置z-index:999
  • @NarendraSisodia 设置为 999 后没有变化
  • 如果您要在本地机器上测试东西就好了。因为我刚刚刷新了页面,一切都乱七八糟了=)
  • 对不起@Alexey 我没有注意到它是自动上传的。我现在改了

标签: php html css joomla


【解决方案1】:

试试这个

.main_menu ul.nav-child
{
    display: none;
    position:absolute;
    top:20px;
    left:0;
    padding:0;
}

working link

【讨论】:

    【解决方案2】:

    将您的 CSS 更改为:

    .main_menu {
        margin-top: 0px;
        margin-bottom: 10px;
        text-align: center;
    }
    .main_menu ul {
        margin: 0px;
        list-style: none;
        display: inline-block;
    }
    .main_menu li {
        position: relative;
        margin-right: 5px;
        width: 100px;
        display: inline-block;
        border-radius: 7px;
        -moz-border-radius: 7px;
        -webkit-border-radius: 7px;
        border: 1px solid #000000;
    }
    .main_menu  li .nav-child {
        position: absolute;
        top: 1em;
        left: 0;
        margin-left: 0;
        padding: 10px 0 0;
        display: none;
    }
    
    .main_menu  li:hover .nav-child {
        display: inline-block;
        z-index: 100;
    }
    /* This block is not needed, it's just for styling */
    .main_menu li .nav-child li {
        background: white;
        margin: 2px 0;
        box-shadow: 0 0 7px -3px;
    }
    

    在此处查看小提琴:http://jsfiddle.net/nezhhde4/1/

    EDIT(添加说明): 当你有一个嵌套元素并且你想将它水平定位在父元素之下时,你必须将父元素定位为相对,子元素定位为绝对。这样子 top,left,rightbottom 属性将引用相对父级的位置。另外,由于子元素不是相对定位的,它们不会移动屏幕上的其他元素;它们将根据其 z-index 值堆叠在其他元素之上或之下(这就是您需要指定 z-index: 100 值的原因)。请注意,如果屏幕上有一个 z-index 大于 100 的元素,它将呈现在您的导航上方,因此您需要相应地更改此属性。

    【讨论】:

    • 谢谢!这对我有用,你能解释一下它为什么有效或我犯了什么类型的错误吗?
    • 查看答案,我添加了解释。
    【解决方案3】:

    添加这个:

    .main_menu{
        position: absolute;
        top: 10px;
        width: 100%;
        margin: 0 auto;
    }
    
    .content{
        margin-top:30px;
    }
    

    这应该让你的菜单在顶部居中。

    【讨论】:

      猜你喜欢
      • 2020-07-16
      • 2020-10-27
      • 1970-01-01
      • 2019-12-18
      相关资源
      最近更新 更多