空格时进度条标签显示不正确

时间:2018-09-05 19:49:08

标签: html css

我有一个进度条:

<div class="progress">
    <div class="circle done">
            <span class="label">1</span>
            <span class="title">One Two Three</span>
    </div>
    <span class="bar done"></span>
    <div class="circle done">
            <span class="label">2</span>
            <span class="title">OneTwoThree</span>
    </div>
    <span class="bar half"></span>
    <div class="circle active">
            <span class="label">3</span>
            <span class="title">OneTwoThreeFour</span>
    </div>
    <span class="bar"></span>
    <div class="circle">
            <span class="label">4</span>
            <span class="title">Five Six Seven</span>
    </div>

</div>

使用以下CSS

 *, *:after, *:before {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: "Open Sans";
}

    .progress {
    width: 1000px;
    margin: 20px auto;
    text-align: center;
}
.progress .circle,
.progress .bar {
    display: inline-block;
    background: #fff;
    width: 40px; height: 40px;
    border-radius: 40px;
    border: 1px solid #d5d5da;
}
.progress .bar {
    position: relative;
    width: 80px;
    height: 6px;
    top: -33px;
    margin-left: -5px;
    margin-right: -5px;
    border-left: none;
    border-right: none;
    border-radius: 0;
}
.progress .circle .label {
    display: inline-block;
    width: 32px;
    height: 32px;
    line-height: 32px;
    border-radius: 32px;
    margin-top: 3px;
    color: #b5b5ba;
    font-size: 17px;
}
.progress .circle .title {
    color: #b5b5ba;
    font-size: 13px;
    line-height: 30px;
    margin-left: -5px;
}

/* Done / Active */
.progress .bar.done,
.progress .circle.done {
     background: #eee;
}
.progress .bar.active {
    background: linear-gradient(to right, #EEE 40%, #FFF 60%);
}
.progress .circle.done .label {
    color: #FFF;
    background: #8bc435;
    box-shadow: inset 0 0 2px rgba(0,0,0,.2);
}
.progress .circle.done .title {
        color: #444;
    }
    .progress .circle.active .label {
        color: #FFF;
        background: #0c95be;
        box-shadow: inset 0 0 2px rgba(0,0,0,.2);
    }
    .progress .circle.active .title {
        color: #0c95be;
    }

问题在于第一个节点和最后一个节点,因为这些节点的标题中有空格。我该如何解决。我尝试调整CSS,但到目前为止没有成功

2 个答案:

答案 0 :(得分:2)

将nowrap添加到标题元素。它将所有单词强制为一行。

.progress .circle .title {
    white-space: nowrap;
}

答案 1 :(得分:1)

这是您要寻找的吗?

*, *:after, *:before {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: "Open Sans";
}

    .progress {
    width: 1000px;
    margin: 20px auto;
    text-align: center;
}
.progress .circle,
.progress .bar {
    display: inline-block;
    background: #fff;
    width: 40px; height: 40px;
    border-radius: 40px;
    border: 1px solid #d5d5da;
}
.progress .bar {
    position: relative;
    width: 80px;
    height: 6px;
    top: -33px;
    margin-left: -5px;
    margin-right: -5px;
    border-left: none;
    border-right: none;
    border-radius: 0;
}
.progress .circle .label {
    display: inline-block;
    width: 32px;
    height: 32px;
    line-height: 32px;
    border-radius: 32px;
    margin-top: 3px;
    color: #b5b5ba;
    font-size: 17px;
}
.progress .circle .title {
    color: #b5b5ba;
    font-size: 13px;
    line-height: 30px;
    margin-left: -5px;
    white-space: nowrap
}

/* Done / Active */
.progress .bar.done,
.progress .circle.done {
     background: #eee;
}
.progress .bar.active {
    background: linear-gradient(to right, #EEE 40%, #FFF 60%);
}
.progress .circle.done .label {
    color: #FFF;
    background: #8bc435;
    box-shadow: inset 0 0 2px rgba(0,0,0,.2);
}
.progress .circle.done .title {
        color: #444;
    }
    .progress .circle.active .label {
        color: #FFF;
        background: #0c95be;
        box-shadow: inset 0 0 2px rgba(0,0,0,.2);
    }
    .progress .circle.active .title {
        color: #0c95be;
    }
}
<div class="progress">
    <div class="circle done">
            <span class="label">1</span>
            <span class="title">One Two Three</span>
    </div>
    <span class="bar done"></span>
    <div class="circle done">
            <span class="label">2</span>
            <span class="title">OneTwoThree</span>
    </div>
    <span class="bar half"></span>
    <div class="circle active">
            <span class="label">3</span>
            <span class="title">OneTwoThreeFour</span>
    </div>
    <span class="bar"></span>
    <div class="circle">
            <span class="label">4</span>
            <span class="title">Five Six Seven</span>
    </div>

</div>