【问题标题】:jquery-html accordion menujquery-html 手风琴菜单
【发布时间】:2014-03-31 00:19:01
【问题描述】:

我的子菜单有问题。因为它位于<li> 中,所以子菜单会随着主菜单的颜色切换。我找到了我的问题,但我不知道如何解决它。这是因为填充。

这是我的 CSS:

#menu li{
   margin-top: 1px;  
   padding-top: 10px;
   padding-bottom: 10px;
   background-color: #1a1a1a;
   text-decoration: none;    
}
#menu li ul li{
   border: 0;
   margin: 0;
   display: none;
   background-color: #232323;
   text-indent: 15px;
   height: auto;
}

这是我的 jquery:

     $('#menu').find('li').click(function(){
         $(this).find('ul>li').fadeToggle('fast');
     });

和html:

<ul id="menu">
   <li class="first current"><a id='home'>Home</a></li>
   <li class="has_current"><a id='#'>About</a>
<ul>
    <li class="first current"><a id='home'>Sub1</a></li>
    <li class="last current"><a id='home'>Sub2</a></li>
</ul>
</li>

我找到了解决方案。我将padding-bottompadding-top 替换为line-height,它起作用了

【问题讨论】:

  • 这是您想要实现的目标吗? jsfiddle.net/cNM8r.
  • 是的,但我需要将文本放在 &lt;li&gt; 的中间
  • 您想让文本居中显示哪个&lt;ul&gt;(man nav 或 sub nav)?
  • 主文本和子文本都应该居中
  • @user3360739:这是你想要的吗? jsfiddle.net/dreamweiver/cNM8r/9

标签: jquery html css accordion


【解决方案1】:

好的,我在这里创建了一个示例jsfiddle,但无法重现该问题。

顺便说一句,您用于内部列表的颜色太暗,所以我将其更改为浅色以便能够看到一些东西:

#menu li ul li{
   border: 0;
   margin: 0;
   display: none;
   background-color: **#ccc**;
   text-indent: 15px;
   height: auto;
}

【讨论】:

  • 问题在于,当您单击打开子菜单时,它会在 &lt;li&gt; 父级内打开,因此在底部保留了几个父级颜色的像素(底部有黑色填充)。我希望我解释得更好
【解决方案2】:

要摆脱嵌套列表(或子导航)中的父background-color,您需要设置padding-left: 0;。要摆脱子弹,您可以使用list-style: none;。以下是如何做到这一点的示例:

#menu,
#menu > li > ul {
    list-style: none;
    padding-left: 0;
}

Example JSFiddle for above

接下来,您提到(在上面的 cmets 中)您希望将链接集中在父列表和子导航列表中。为此,您可以执行以下操作。这样做的目的是在 ID 为 #menu 的元素中获取所有 &lt;a&gt; 和前面的 &lt;li&gt;,并将它们设置为显示为块级元素以及居中文本。

#menu li > a {
    display: block;
    text-align: center;
    color: white; /* added so you can see the links better */
}

从第一个示例构建,here is an updated JSFiddle 带有居中链接。

【讨论】:

  • 我想我解释得不对。这是一个示例link。当您打开子导航时,我的问题是导航底部的那些像素。这都是关于父 &lt;li&gt; 的填充。
  • #menu li 中删除padding-bottom: 10px;。我建议您将填充添加到 &lt;a&gt; 元素中,并删除 &lt;li&gt; 中的填充。
猜你喜欢
  • 2011-05-01
  • 2013-02-03
  • 2015-07-22
  • 1970-01-01
  • 2023-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多