首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用百分比拟合导航系统中的列表项

使用百分比拟合导航系统中的列表项
EN

Stack Overflow用户
提问于 2015-08-31 09:49:14
回答 3查看 58关注 0票数 1

正如您从下面可以看到的,我很难将Tab 5与我的其他列表项目搭配在一起。我把每个宽度设为20%,但不起作用。但是当我把它设定为19%时,它就能正常工作了。是什么导致Tab 5移动到下一行?

代码语言:javascript
复制
.progress-region {
    max-width: 1040px;
    margin: 0 auto;
    border: 2px solid;
}

.progress-nav {
    position: relative;
    padding-top: 30px
}
.progress-nav .step-labels {
    margin: 0 0 20px
}

.progress-nav .step-labels.items-5 .item {
    width: 20%
}

.progress-nav .step-labels .item {
    box-sizing: border-box;
    color: #aaa;
    display: inline-block;
    text-align: center;
    font-size: 14px;
    -moz-transition: all .2s linear;
    -o-transition: all .2s linear;
    -webkit-transition: all .2s linear;
    transition: all .2s linear
}

.progress-nav .progress-bar {
    height: 3px;
    background: #f5f5f5

}

.progress-nav .progress-bar .inner-bar {
    background: #3381d0;
    height: 100%;
    width: 0
}
代码语言:javascript
复制
<link href="http://jsfiddle.net/css/normalize.css" rel="stylesheet"/>
<section class="progress-region">
    <div class="progress-nav">
        <div class="back-arrow" style="display: none;"></div>
        <ul class="step-labels items-5">
            <li class="item" data-index="0">Tab 1</li>
            <li class="item active" data-index="1">Tab 2</li>
            <li class="item" data-index="2">Tab 3</li>
            <li class="item" data-index="3">Tab 4</li>
            <li class="item" data-index="4">Tab 5</li>
        </ul>
        <div class="progress-bar">
            <div class="inner-bar" style="width: 50%;"></div>
        </div>
    </div>
</section>

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-08-31 10:00:32

另一种选择,您可以使用flex模型。我还没有包括它在旧浏览器上工作所需的所有前缀,这仅仅是为了压缩答案。您可以找到有关该这里的信息。

代码语言:javascript
复制
.progress-region {
  max-width: 1040px;
  margin: 0 auto;
  border: 2px solid;
}
.progress-nav {
  position: relative;
  padding-top: 30px
}
.progress-nav .step-labels {
  margin: 0 0 20px;
  display: flex;
}
.progress-nav .step-labels.items-5 .item {
  flex: 1;
}
.progress-nav .step-labels .item {
  box-sizing: border-box;
  color: #aaa;
  display: inline-block;
  text-align: center;
  font-size: 14px;
  -moz-transition: all .2s linear;
  -o-transition: all .2s linear;
  -webkit-transition: all .2s linear;
  transition: all .2s linear
}
.progress-nav .progress-bar {
  height: 3px;
  background: #f5f5f5
}
.progress-nav .progress-bar .inner-bar {
  background: #3381d0;
  height: 100%;
  width: 0
}
代码语言:javascript
复制
<link href="http://jsfiddle.net/css/normalize.css" rel="stylesheet" />
<section class="progress-region">
  <div class="progress-nav">
    <div class="back-arrow" style="display: none;"></div>
    <ul class="step-labels items-5">
      <li class="item" data-index="0">Tab 1</li>
      <li class="item active" data-index="1">Tab 2</li>
      <li class="item" data-index="2">Tab 3</li>
      <li class="item" data-index="3">Tab 4</li>
      <li class="item" data-index="4">Tab 5</li>
    </ul>
    <div class="progress-bar">
      <div class="inner-bar" style="width: 50%;"></div>
    </div>
  </div>
</section>

票数 0
EN

Stack Overflow用户

发布于 2015-08-31 10:03:01

造成此问题的原因是列表项上的display: inline-block。默认情况下,内联块元素在它们之间生成空间*。当您将20%宽度缩小到19%时,边距/间隙差是相等的。

*内联块元素之间的空间

代码语言:javascript
复制
.progress-region {
    max-width: 1040px;
    margin: 0 auto;
    border: 2px solid;
}

.progress-nav {
    position: relative;
    padding-top: 30px
}
.progress-nav .step-labels {
    margin: 0 0 20px
}

.progress-nav .step-labels.items-5 .item {
    width: 19%
}

.progress-nav .step-labels .item {
    box-sizing: border-box;
    color: #aaa;
    display: inline-block;
    text-align: center;
    font-size: 14px;
    -moz-transition: all .2s linear;
    -o-transition: all .2s linear;
    -webkit-transition: all .2s linear;
    transition: all .2s linear
}

.progress-nav .progress-bar {
    height: 3px;
    background: #f5f5f5

}

.progress-nav .progress-bar .inner-bar {
    background: #3381d0;
    height: 100%;
    width: 0
}
代码语言:javascript
复制
<link href="http://jsfiddle.net/css/normalize.css" rel="stylesheet"/>
<section class="progress-region">
    <div class="progress-nav">
        <div class="back-arrow" style="display: none;"></div>
        <ul class="step-labels items-5">
            <li class="item" data-index="0">Tab 1</li>
            <li class="item active" data-index="1">Tab 2</li>
            <li class="item" data-index="2">Tab 3</li>
            <li class="item" data-index="3">Tab 4</li>
            <li class="item" data-index="4">Tab 5</li>
        </ul>
        <div class="progress-bar">
            <div class="inner-bar" style="width: 50%;"></div>
        </div>
    </div>
</section>

票数 0
EN

Stack Overflow用户

发布于 2015-08-31 10:03:38

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32308422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档