【问题标题】:How to Line Up Sub List Items Vertically in Drop Down Menu如何在下拉菜单中垂直排列子列表项
【发布时间】:2015-08-15 13:31:54
【问题描述】:

我正在开发一个 CSS 悬停菜单,除了我的子菜单似乎移动了其中一个菜单项并且它们没有垂直排列之外,一切正常。我一直在玩弄 CSS,但似乎无法弄清楚它是哪个设置。

<ul>
    <li><a href="#">Reports</a></li>
    <li><a href="#">Users</a></li>
    <li><a href="#">Settings</a></li>
    <li><a href="/administration">Admin</a>
        <ul>
            <li>Sub 1</li>
            <li>Sub 2</li>
            <li>Sub 3</li>
        </ul>
    </li>
</ul>

我的 CSS

.navigation ul ul {
    display: none;
}
.navigation ul li:hover > ul {
    display: block;
    position: absolute;
    background-color: #CC0000;
    margin-left: -77px;
}
.navigation ul ul li {
    float: none;
    display: list-item;
    position: relative;
    text-align: right;
    min-width: 100px;
}

你可以在http://codepen.io/anon/pen/ZGZNqG看到这个操作

【问题讨论】:

    标签: html css


    【解决方案1】:

    您必须从.navigation ul li:last-child 中删除padding-right 属性。因为您在.navigation ul li 样式中为其他lis 提供了10px 的填充...

    .navigation {
      border: 1px solid black;  
    }
    .navigation a {
      text-decoration: none;
      color: #000000;
    }
    .navigation a:hover {
      text-decoration: underline;
    }
    .navigation ul {
      list-style: none;
      margin: 0px 0px 0px 0px;
    }
    
    .u-pull-right li:last-child {
      padding: 2px 0px 2px 10px;
    }
    
    #admin-list li{
      padding: 2px 0px 2px 0px;
    }
    .navigation ul li {
      display: inline-block;
      padding: 2px 10px 2px 10px;
    }
    .navigation ul li:first-child {
      padding-left: 0px;
    }
    
    .navigation ul li.active {
      font-weight: bold;
    }
    .navigation ul ul {
      display: none;
    }
    .navigation ul li:hover > ul {
      display: block;
      position: absolute;
      background-color: #CC0000;
      margin-left: -77px;
    }
    .navigation ul ul li {
      float: none;
      display: list-item;
      position: relative;
      text-align: right;
      min-width: 100px;
    }
    <div class="row navigation no-print">
      <ul class="u-pull-right">
        <li><a href="#">Reports</a>
        </li>
        <li><a href="#">Users</a>
        </li>
        <li><a href="#">Settings</a>
        </li>
        <li id="admin-list"><a href="/administration">Admin</a>
          <ul>
            <li>Sub 1</li>
            <li>Sub 2</li>
            <li>Sub 3</li>
          </ul>
        </li>
      </ul>
    </div>

    【讨论】:

    • 这当然修复了它,但是我有没有办法在不使用.navigation ul li:last-child的情况下仍然从“管理员”中删除填充权
  • 您只想从Sub 3 菜单项中删除padding-right 吗?还是要将其从所有子菜单项中删除?
  • 所有子菜单项,也来自&lt;li&gt;&lt;a href="/administration"&gt;Admin&lt;/a&gt;&lt;/li&gt;
  • 我知道我可以在 &lt;li&gt; 上使用内联样式,但希望避免这种情况。
  • 啊好吧等我试试看...!
  • 猜你喜欢
    相关资源
    最近更新 更多
    热门标签