html – 均匀分配li项目

希望这是自我解释:

HTML

<ul class="steps">
<li class="step1 first">
    <div class="icon basket"></div>
    1.Warenkorb
</li>
<li class="step2">
    <div class="icon registration"></div>
    2.Adresse
</li>
<li class="step3">
    <div class="icon payment"></div>
    3.Zahlungsart
</li>
<li class="step4">
    <div class="icon order"></div>
    4.Bestätigen
</li>
<li class="step5 last">
    <div class="icon thankyou last"></div>
    5.Danke
</li>
<div style="clear:both"></div>

CSS:

.steps {
width:100%;
list-style-type: none;
padding:0;
margin:0 auto;
background:url(http://tnsdev.cloudapp.net/dev/steps_slice.png) repeat-x;
 }

 .steps li {
width:20%;
float:left;

}

.steps li .icon {
background:url(http://tnsdev.cloudapp.net/dev/steps_icon.png) no-repeat;
height:44px;
width:44px;
}

http://jsfiddle.net/HYYwn/1/

我如何才能实现泡沫之间的距离是一样的,而step5的气泡在最右边呢?我有五个不同的李的限制,并使用%,所以它保持响应.

现在玩了一段时间,我自己不能摆脱这个问题!

编辑:

结果应该是这样的

O--O--O--O--O

不喜欢

--O--O--O--O--O

要么

O--O--O--O--O--

要么

--O--O--O--O--O--

解决方法

这是使用text-align:justify做一个方法.

这种方法的优点是圆/气泡图案均匀间隔,您还可以控制下面的标签的对齐.

您首先需要将标签包装在容器中,我使用< p>标记,并添加一个终止< li>元素,相当于清算元素.

<ul class="steps">
    <li class="step1 first">
        <div class="icon basket"></div>
        <p>1.Warenkorb</p>
    </li>
    <li class="step2">
        <div class="icon registration"></div>
        <p>2.Adresse</p>
    </li>
    <li class="step3">
        <div class="icon payment"></div>
        <p>3.Zahlungsart</p>
    </li>
    <li class="step4">
        <div class="icon order"></div>
        <p>4.Bestätigen</p>
    </li>
    <li class="step5 last">
        <div class="icon thankyou last"></div>
        <p>5.Danke</p>
    </li>
    <li class="filler"></li>
</ul>

对于CSS:

.steps {
    width:100%;
    list-style-type: none;
    padding:0;
    margin:0 auto;
    background:url(http://tnsdev.cloudapp.net/dev/steps_slice.png) repeat-x;
    text-align: justify;
    line-height: 0;
}
.steps li {
    width: auto;
    display: inline-block;
    margin: 0;
    padding: 0;
    line-height: 1.5;
    position: relative;
    text-align: center;
}
.steps li .icon {
    background:url(http://tnsdev.cloudapp.net/dev/steps_icon.png) top center no-repeat;
    height:44px;
    width:44px;
}
.steps li p {
    position: absolute;
    width: 100px;
    top: 50px;
    left: -22px;
    margin: 0;
}
.steps li.first p {
    text-align: left;
    left: 0;
}
.steps li.last p {
    text-align: right;
    left: auto;
    right: 0;
}
.steps li.filler {
    width: 100%;
    height: 0;
    font-size: 0;
    vertical-align: top;
}

See demo at jsFiddle

首先,我在父容器上使用text-align:对齐,以均匀分布那些缩进为适合squareicon元素的内联块的li元素.

.filler行强制新的100%宽度的行,允许文本对齐工作.我设置vertical-align:top(和父项中的line-height:0)以摆脱由填充元素创建的空格的孤儿.

然后使用绝对定位将标签从流程中取出,并调整第一个和最后一个列表项的文本对齐方式,并使用负边距定位它们以使标签居中.

一个限制是为标签指定了宽度,因此您应该按照您的配置向父容器添加最小宽度.

你有足够的空间来调整需要的东西.

相关文章

vue阻止冒泡事件 阻止点击事件的执行 &lt;div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些