调整列表的宽度以包含链接而不是包含子列表

时间:2020-08-17 14:04:57

标签: html css

我有一个水平的flex列表,每个项目都包含一个链接和另一个子列表。

我希望第一代项li的宽度与所包含链接中的单词一样,子列表的宽度与它需要可单击而不要包装单词的宽度一样。

尝试过的选项1::我将第一个li的宽度设置为40px,将子ul的宽度设置为200px->子链接不再可单击。

尝试了选项2::我将子ul的宽度设置为10px和white-space: nowrap;,并将position: relative; z-index: 5;的宽度设置为最终链接->子链接是可单击的...但是,这是最佳做法吗?

<ul id="menu-mobile-en" class="menu">
    <li id="menu-item-20858" class="retail-only-element menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-20858 focus"><a href="#">SHOP</a><button aria-expanded="false" class="dropdown-toggle"><span class="screen-reader-text">Expand child menu</span></button>
        <ul class="sub-menu toggled-on">
            <li id="menu-item-9404" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-9404"><a href="https://staging.mysite.com/all/">All</a></li>
            <li id="menu-item-39924" class="menu-item menu-item-type-taxonomy menu-item-object-product_cat menu-item-39924"><a href="https://staging.mysite.com/eshop2/new/">New</a></li>
            <li id="menu-item-4352" class="menu-item menu-item-type-taxonomy menu-item-object-product_cat menu-item-4352"><a href="https://staging.mysite.com/eshop2/boxers-for-men/">Boxers</a></li>
            <li id="menu-item-4357" class="menu-item menu-item-type-taxonomy menu-item-object-product_cat menu-item-4357"><a href="https://staging.mysite.com/eshop2/briefs/">Briefs</a></li>
            <li id="menu-item-4358" class="menu-item menu-item-type-taxonomy menu-item-object-product_cat menu-item-4358"><a href="https://staging.mysite.com/eshop2/tank-tops/">Tank Tops</a></li>
            <li id="menu-item-4355" class="menu-item menu-item-type-taxonomy menu-item-object-product_cat menu-item-4355"><a href="https://staging.mysite.com/eshop2/t-shirts/">T-shirts</a></li>
            <li id="menu-item-4353" class="menu-item menu-item-type-taxonomy menu-item-object-product_cat menu-item-4353"><a href="https://staging.mysite.com/eshop2/henleys/">Henleys</a></li>
            <li id="menu-item-4354" class="menu-item menu-item-type-taxonomy menu-item-object-product_cat menu-item-4354"><a href="https://staging.mysite.com/eshop2/longjohns/">Longjohns</a></li>
            <li id="menu-item-4356" class="menu-item menu-item-type-taxonomy menu-item-object-product_cat menu-item-4356 focus"><a href="https://staging.mysite.com/eshop2/accessories/">Accessories</a></li>
            <li id="menu-item-34091" class="menu-item menu-item-type-taxonomy menu-item-object-product_cat menu-item-34091"><a href="https://staging.mysite.com/eshop2/last-chance/">Last chance</a></li>
        </ul>
    </li>
</ul>

CSS:

/* Inner toggled menu */
.handheld-navigation {
    color: black;
    position: fixed;
    width: 100%;
    top: 85px;
    bottom: 0;
    background-color: white;
    font-size: 15px;
    letter-spacing: 3px
}
.handheld-navigation ul.menu {
    display:flex;
    margin-left: 7px;
    margin-top: 0px;
}
.handheld-navigation ul.menu a {
    font-weight: 900;
    display: inline-block;
}
.handheld-navigation ul.menu li.menu-item a {
    padding: 8px 0;
}
.handheld-navigation ul.menu li.menu-item ul.sub-menu {
    display:flex;
    flex-direction: column;
    margin-left: 0;
}
.handheld-navigation ul.menu li.menu-item ul.sub-menu li a {
    font-weight: normal;
    color: black;
    text-transform: uppercase;
}

1 个答案:

答案 0 :(得分:0)

这似乎有用吗?

注意::运行摘要并检查元素。

/* Inner toggled menu */

ul.menu {
  display: flex;
  margin-left: 7px;
  margin-top: 0px;
}

ul.menu a {
  font-weight: 900;
  display: inline-block;
}

ul.menu button {
  position: absolute;
  right: 10px;
  top: 10px;
}

ul.menu li.menu-item a {
  padding: 8px 0;
}

ul.menu li.menu-item ul.sub-menu {
  display: flex;
  position: absolute;
  flex-direction: column;
  margin-left: 0;
}

ul.menu li.menu-item ul.sub-menu li a {
  font-weight: normal;
  color: black;
  text-transform: uppercase;
}
<ul id="menu-mobile-en" class="menu">
  <li id="menu-item-20858" class="retail-only-element menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-20858 focus"><a href="#">SHOP</a><button aria-expanded="false" class="dropdown-toggle"><span class="screen-reader-text">Expand child menu</span></button>
    <ul class="sub-menu toggled-on">
      <li id="menu-item-9404" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-9404"><a href="https://staging.mysite.com/all/">All</a></li>
      <li id="menu-item-39924" class="menu-item menu-item-type-taxonomy menu-item-object-product_cat menu-item-39924"><a href="https://staging.mysite.com/eshop2/new/">New</a></li>
      <li id="menu-item-4352" class="menu-item menu-item-type-taxonomy menu-item-object-product_cat menu-item-4352"><a href="https://staging.mysite.com/eshop2/boxers-for-men/">Boxers</a></li>
      <li id="menu-item-4357" class="menu-item menu-item-type-taxonomy menu-item-object-product_cat menu-item-4357"><a href="https://staging.mysite.com/eshop2/briefs/">Briefs</a></li>
      <li id="menu-item-4358" class="menu-item menu-item-type-taxonomy menu-item-object-product_cat menu-item-4358"><a href="https://staging.mysite.com/eshop2/tank-tops/">Tank Tops</a></li>
      <li id="menu-item-4355" class="menu-item menu-item-type-taxonomy menu-item-object-product_cat menu-item-4355"><a href="https://staging.mysite.com/eshop2/t-shirts/">T-shirts</a></li>
      <li id="menu-item-4353" class="menu-item menu-item-type-taxonomy menu-item-object-product_cat menu-item-4353"><a href="https://staging.mysite.com/eshop2/henleys/">Henleys</a></li>
      <li id="menu-item-4354" class="menu-item menu-item-type-taxonomy menu-item-object-product_cat menu-item-4354"><a href="https://staging.mysite.com/eshop2/longjohns/">Longjohns</a></li>
      <li id="menu-item-4356" class="menu-item menu-item-type-taxonomy menu-item-object-product_cat menu-item-4356 focus"><a href="https://staging.mysite.com/eshop2/accessories/">Accessories</a></li>
      <li id="menu-item-34091" class="menu-item menu-item-type-taxonomy menu-item-object-product_cat menu-item-34091"><a href="https://staging.mysite.com/eshop2/last-chance/">Last chance</a></li>
    </ul>
  </li>
</ul>