【问题标题】:Toggle dropdown menu on ul:focus在 ul:focus 上切换下拉菜单
【发布时间】:2017-06-16 04:27:54
【问题描述】:

我正在尝试使用纯 CSS 创建下拉导航,我想在 ul 点击时显示下拉菜单。问题是即使有锚点,简单的 ul:focus > ul 也不起作用。选择器 :hover 和 :active 工作正常。

HTML

<li><a href="#">Menu 1</a>
    <ul>
      <li><a href="#">Sub Menu 1</a></li>
      <li><a href="#">Sub Menu 2</a></li>
      <li><a href="#">Sub Menu 3</a></li>
      <li><a href="#">Sub Menu 4</a>
    </ul>
</li>

CSS

#primary_nav_wrap ul li:hover > ul
{
    display:block
}

代码如下: https://codepen.io/anon/pen/vgpQWV

【问题讨论】:

    标签: html css


    【解决方案1】:

    您的选择器必须是#primary_nav_wrap ul li &gt; a:focus + ul

    分解:

    当直接在&lt;li&gt; 内的&lt;a&gt; 具有焦点时,将这些样式应用于紧邻的&lt;ul&gt;

    固定示例:

    #primary_nav_wrap {
      margin-top: 15px
    }
    #primary_nav_wrap ul {
      list-style: none;
      position: relative;
      float: left;
      margin: 0;
      padding: 0
    }
    #primary_nav_wrap ul a {
      display: block;
      color: #333;
      text-decoration: none;
      font-weight: 700;
      font-size: 12px;
      line-height: 32px;
      padding: 0 15px;
      font-family: "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif
    }
    #primary_nav_wrap ul li {
      position: relative;
      float: left;
      margin: 0;
      padding: 0
    }
    #primary_nav_wrap ul li.current-menu-item {
      background: #ddd
    }
    #primary_nav_wrap ul li:hover {
      background: #f6f6f6
    }
    #primary_nav_wrap ul ul {
      display: none;
      position: absolute;
      top: 100%;
      left: 0;
      background: #fff;
      padding: 0
    }
    #primary_nav_wrap ul ul li {
      float: none;
      width: 200px
    }
    #primary_nav_wrap ul ul a {
      line-height: 120%;
      padding: 10px 15px
    }
    #primary_nav_wrap ul ul ul {
      top: 0;
      left: 100%
    }
    #primary_nav_wrap ul li > a:focus + ul {
      display: block
    }
    <h1>Testing menu</h1>
    <nav id="primary_nav_wrap">
      <ul>
        <li class="current-menu-item"><a href="#">Home</a>
        </li>
        <li><a href="#">Menu 1</a>
          <ul>
            <li><a href="#">Sub Menu 1</a>
            </li>
            <li><a href="#">Sub Menu 2</a>
            </li>
            <li><a href="#">Sub Menu 3</a>
            </li>
            <li><a href="#">Sub Menu 4</a>
              <ul>
                <li><a href="#">Deep Menu 1</a>
                  <ul>
                    <li><a href="#">Sub Deep 1</a>
                    </li>
                    <li><a href="#">Sub Deep 2</a>
                    </li>
                    <li><a href="#">Sub Deep 3</a>
                    </li>
                    <li><a href="#">Sub Deep 4</a>
                    </li>
                  </ul>
                </li>
                <li><a href="#">Deep Menu 2</a>
                </li>
              </ul>
            </li>
            <li><a href="#">Sub Menu 5</a>
            </li>
          </ul>
        </li>
        <li><a href="#">Menu 2</a>
          <ul>
            <li><a href="#">Sub Menu 1</a>
            </li>
            <li><a href="#">Sub Menu 2</a>
            </li>
            <li><a href="#">Sub Menu 3</a>
            </li>
          </ul>
        </li>
        <li><a href="#">Menu 3</a>
          <ul>
            <li class="dir"><a href="#">Sub Menu 1</a>
            </li>
            <li class="dir"><a href="#">Sub Menu 2 THIS IS SO LONG IT MIGHT CAUSE AN ISSEUE BUT MAYBE NOT?</a>
              <ul>
                <li><a href="#">Category 1</a>
                </li>
                <li><a href="#">Category 2</a>
                </li>
                <li><a href="#">Category 3</a>
                </li>
                <li><a href="#">Category 4</a>
                </li>
                <li><a href="#">Category 5</a>
                </li>
              </ul>
            </li>
            <li><a href="#">Sub Menu 3</a>
            </li>
            <li><a href="#">Sub Menu 4</a>
            </li>
            <li><a href="#">Sub Menu 5</a>
            </li>
          </ul>
        </li>
        <li><a href="#">Menu 4</a>
        </li>
        <li><a href="#">Menu 5</a>
        </li>
        <li><a href="#">Menu 6</a>
        </li>
        <li><a href="#">Contact Us</a>
        </li>
      </ul>
    </nav>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-17
      • 2013-02-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多