代码之家  ›  专栏  ›  技术社区  ›  Russel Riehle

如何基于父项的右边缘打开超出的子菜单区域?

  •  0
  • Russel Riehle  · 技术社区  · 8 年前

    我正在用一些子菜单构建一个简单的水平菜单。

    但我一直试图使子项尊重父项的宽度。

    下面是我所说的一些图片:

    我得到的是:

    enter image description here

    enter image description here

    Fiddle

    * {
      margin: 0;
      padding: 0;
    }
    body {
      font-family: arial, helvetica, sans-serif;
      font-size: 12px;
    }
    .menu {
      list-style: none;
      border: 1px solid #c0c0c0;
      float: left;
    }
    .menu li {
      position: relative;
      float: left;
      border-right: 1px solid #c0c0c0;
    }
    .menu li a {
      color: #333;
      text-decoration: none;
      padding: 5px 10px;
      display: block;
    }
    .menu li a:hover {
      background: #333;
      color: #fff;
      -moz-box-shadow: 0 3px 10px 0 #CCC;
      -webkit-box-shadow: 0 3px 10px 0 #ccc;
      text-shadow: 0px 0px 5px #fff;
    }
    .menu li ul {
      position: absolute;
      top: 25px;
      left: 0;
      background-color: #fff;
      display: none;
    }
    .menu li:hover ul,
    .menu li.over ul {
      display: block;
    }
    .menu li ul li {
      border: 1px solid #c0c0c0;
      display: block;
      width: 150px;
    }
    <nav>
    
      <ul class="menu">
    
        <li><a href="#">Home</a>
        </li>
    
        <li><a href="#">About</a>
        </li>
    
        <li><a href="#">What we do?</a>
    
          <ul>
    
            <li><a href="#">What we do? 01</a>
            </li>
            <li><a href="#">What we do? 02</a>
            </li>
            <li><a href="#">What we do? 03</a>
            </li>
          </ul>
    
        </li>
    
        <li><a href="#">Links</a>
    
          <ul>
    
            <li><a href="#">Myotherwebsiteiscool</a>
            </li>
    
          </ul>
    
        </li>
    
        <li><a href="#">Contact</a>
    
          <ul>
    
            <li><a href="#">Form Contact</a>
            </li>
            <li><a href="#">Find us</a>
            </li>
    
          </ul>
    
        </li>
    
      </ul>
    
    </nav>
    1 回复  |  直到 7 年前
        1
  •  1
  •   kukkuz    8 年前

    在此处更改css-请注意,我已更改 left: 0 right: 0

    .menu li ul {
        position: absolute;
        top: 25px;
        right: 0;
        background-color: #fff;
        display: none;
    }
    

    * {
      margin: 0;
      padding: 0;
    }
    body {
      font-family: arial, helvetica, sans-serif;
      font-size: 12px;
    }
    .menu {
      list-style: none;
      border: 1px solid #c0c0c0;
      float: left;
    }
    .menu li {
      position: relative;
      float: left;
      border-right: 1px solid #c0c0c0;
    }
    .menu li a {
      color: #333;
      text-decoration: none;
      padding: 5px 10px;
      display: block;
    }
    .menu li a:hover {
      background: #333;
      color: #fff;
      -moz-box-shadow: 0 3px 10px 0 #CCC;
      -webkit-box-shadow: 0 3px 10px 0 #ccc;
      text-shadow: 0px 0px 5px #fff;
    }
    .menu li ul {
      position: absolute;
      top: 25px;
      right: 0;
      background-color: #fff;
      display: none;
    }
    .menu li:hover ul,
    .menu li.over ul {
      display: block;
    }
    .menu li ul li {
      border: 1px solid #c0c0c0;
      display: block;
      width: 150px;
    }
    <nav>
    
      <ul class="menu">
    
        <li><a href="#">Home</a>
        </li>
    
        <li><a href="#">About</a>
        </li>
    
        <li><a href="#">What we do?</a>
    
          <ul>
    
            <li><a href="#">What we do? 01</a>
            </li>
            <li><a href="#">What we do? 02</a>
            </li>
            <li><a href="#">What we do? 03</a>
            </li>
          </ul>
    
        </li>
    
        <li><a href="#">Links</a>
    
          <ul>
    
            <li><a href="#">Myotherwebsiteiscool</a>
            </li>
    
          </ul>
    
        </li>
    
        <li><a href="#">Contact</a>
    
          <ul>
    
            <li><a href="#">Form Contact</a>
            </li>
            <li><a href="#">Find us</a>
            </li>
    
          </ul>
    
        </li>
    
      </ul>
    
    </nav>