全宽导航,每个项目的动态宽度等于 100%

full width navigation with dynamic width to each item and equal to 100%

我想要一个包含 6 个菜单项的全宽导航,但每个项目的字长不同,这 6 个项目必须具有基于字长的动态百分比宽度,并且它们等于 100% .

希望下图能让大家更容易理解:

仅 css 可以吗?我已经试了好几天了,但还没有找到任何解决办法。请帮忙。

是的,这只有 CSS 才有可能。请检查我为演示目的创建的代码笔,你可以有更多的样式和其他东西

https://codepen.io/anon/pen/pXrvrZ

    <div class="menu">
      <ul>
        <li>About</li>
        <li>Custom Made Product & Private Label</li>
        <li>Packaging</li>
        <li>Facility</li>
        <li>Contact</li>
        <li>Insta WA</li>
      </ul>
    </div>

    *,
*::before,
*::after {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}

    ul {
     list-style-type: none;
     display: grid;
     grid-template-columns: repeat(6, 1fr);
    }

    .menu {
      width: 100%;
    }

另请查看 CSS 网格的使用指南

https://css-tricks.com/snippets/css/complete-guide-grid/

我个人会用 flex 做这个

.flex{
 display:flex;
 flex-wrap:wrap
}

.logo{
  width:15%;
  text-align:center;
  color:#fff;
  background:red;
}

.nav{
  padding:0;
  margin:0 0 0 5%;
  width:80%;
}

.nav li{
  list-style-type:none;
  margin-left:auto;
}

.nav li:first-child{
  margin-left:0;
}
<div class="flex menu-container">
  <div class="logo">
    Logo
  </div>
  <ul class="nav flex">
    <li>About</li>
    <li>Custom-made product &amp; private label</li>
    <li>Packaging</li>
    <li>Facility</li>
    <li>Contact</li>
    <li>Social</li>
  </ul>
</div>

CSS-Tables

*,
*::before,
*::after {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}

.menu {
  display: table;
  width: 100%;
}

ul {
  list-style-type: none;
  display: table-row;
}

li {
  display: table-cell;
  border: 1px solid grey;
}
<div class="menu">
  <ul>
    <li>About</li>
    <li>Custom Made Product & Private Label</li>
    <li>Packaging</li>
    <li>Facility</li>
    <li>Contact</li>
    <li>Insta WA</li>
  </ul>
</div>