我有一个顶部的标签栏,其中包含4个不同的标签。我的问题是,由于制表符标题的长度不一样,因此看起来好像空白处最小,而最小的标题之间有很大的间距,而其他所有内容都局促起来(看起来像这样:)。缩小屏幕浏览器大小(iPhone 5s的屏幕尺寸)时,您可以确切地看到我的意思。

为了解决这个问题,我添加了左右间距(示例在这里:https://codepen.io/bigzee/pen/XKLKxG)。但是,现在将浏览器缩小(iPhone 5s屏幕尺寸)时,标题会重叠。我尝试使用z-index修复此问题,但这没有用。这是我的z-index代码:

<div class="tabs-striped tabs-top tabs-background-royal" >
    <div class="tabs" style="position: relative;">
        <a class="bar-royal tab-item" style="color:white; position: relative; z-index: 1;">
            <p class="" style="position: relative; left: 5%;">Top</p>
        </a>
        <a class="bar-royal tab-item" style="color:white; position: relative; z-index: 2;">
            <p class="" style="position: relative; right: 15%;">Top tab 2</p>
        </a>
        <a class="bar-royal tab-item" style="color:white; position: relative; z-index: 3;">
            <p class="" style="position: relative; right: 15%;">Top tab 3</p>
        </a>
        <a class="bar-royal tab-item" style="color:white; position: relative; z-index: 4;">
            <p class="" style="position: relative; right: 15%;">Top tab tab 4</p>
        </a>
    </div>
</div>


我也尝试使用行/列(https://codepen.io/bigzee/pen/OXZXom),但看起来仍然不正确。行/列的代码如下:

<div class="tabs-striped tabs-top tabs-background-royal" >
    <div class="tabs row" style="">
        <a class="bar-royal tab-item col col-10" style="color:white; min-width: 40px; margin-left: 2%;">
            <p class="" style="">Top</p>
        </a>
        <a class="bar-royal tab-item  col col-30" style="color:white;">
            <p class="" style="">Top tab 2</p>
        </a>
        <a class="bar-royal tab-item  col col-30" style="color:white;">
            <p class="" style="">Top tab 3</p>
        </a>
        <a class="bar-royal tab-item  col col-30" style="color:white;">
            <p class="" style="">Top tab tab 4</p>
        </a>
    </div>
</div>


关于如何解决此问题的任何建议?

解:

https://codepen.io/bigzee/pen/PzAzvK

公认的答案提供了解决方法。我只是添加了一个媒体查询来设置最大字体大小,以便在较小的屏幕上字体会变小。

最佳答案

使用display: inline-block



.container {
  width: 320px;
  background-color: rgba(0, 0, 0, .1);
  height: 100vh;
  overflow: hidden;
  margin: 0 auto;
}
* {
  margin: 0;
  padding: 0;
}
.top-menu {
  text-align: center;
}
ul {
  display: inline-flex;
  }
li {
  display: inline-block;
}
li {
  list-style: none;
  border: 1px solid;
  padding: 1em;
}

<div class="container">
  <div class="top-menu">
    <ul>
      <li>top</li>
      <li>top tab 2</li>
      <li>top tab 3</li>
      <li>top tab tab 4</li>
    </ul>
  </div>
</div>

10-05 17:42