2010-07-30 83 views
0

我正在尝试制作一种进度条,里面的文本位于左侧,中间位置,右侧是“有时间位置”。对齐DIV中的3个文本(左,中,右)

我明白了(几乎)正在工作,到目前为止我唯一的问题是,有时中间的文本会变得太长,所以它会跨越div。这意味着它包裹了,并采取了2行,但主要股息仍然存在。

这是代码,也许有人可以帮我解决这个问题,提高了一点:

<div class="progress progressSize"> 
    <div style="width: 50%;" class="progressFill"></div> 
    <div class="progressText"> 
     <span class="leftText">Left Text</span> 
     <span class="centerText">Center text that gets too long</span> 
     <span class="rightText">Right Text</span> 
    </div> 
</div> 

而对于CSS:

.progress { 
    border: 1px solid #004b91; 
    background-color: #FFFFFF; 
    position: relative; 
} 

.progressSize { 
    width: 500px; 
    height: 20px; 
} 

.progressFill { 
    background-color: #EAF3FE; 
    height: 100%; 
    position: absolute; 
} 

.progressText { 
    padding-left: 10px; 
    padding-right: 10px; 
    padding-top: 2px; 
    position: relative; 
} 

.leftText { 
    float: left; 
    width: 33%; 
} 

.centerText { 
    float: left; 
    text-align: center; 
    width: 33%; 
} 

.rightText { 
    float: right; 
    text-align: right; 
} 

所以我的问题是与centerText。中间的文字太大,所以它横跨两行,但不足以填满整个酒吧。因为我保留了33%,左边,中间和右边的文字,中间的文字放置在中间,但它有一个“边界”。

我不知道如何解决这个问题。任何人都可以帮我吗?

谢谢

鲁迪

回答

0

你procressSize CSS应该是:

.progressSize { 
    width: 500px; 
    min-height:20px; 
    height: auto; 
    overflow:auto; 
} 

这将增加的进展div的高度包含文本

编辑,但如果你想在div高度保持不变,没有宽度:33%为centerText div,并保留progressSize CSS我提及的方式

.progressSize { 
    width: 500px; 
    min-height:20px; 
    height: auto; 
    overflow:auto; 
} 

.centerText { 
    float: left; 
    text-align: center; 
    min-width: 33%; // initially, width:33% 
    height:auto; 
} 

最小宽度只是一个最小宽度,因此div不会收缩到33%以下(但它在IE6中不起作用)

+0

谢谢你naikus。这个解决方案使整个div更大,这稍微好一些。然而,我想要做的只是让它们都融入酒吧内。中心文本还剩下一些空间,只有33%强制它跨越多行。 有没有办法让我保留我的左边的文字,中间和正确的文字,而不必使用宽度:请问33%? – Rudy 2010-07-30 19:14:57

+0

基本上,这个点的高度和宽度足够大,以便3个文本适合,但33%强制它跨越2行为中心文本。 如果我摆脱了宽度:33%,我倾向于无法在左边,中间和右边有文字。请问有任何解决方法吗? – Rudy 2010-07-30 19:17:02

+0

在这种情况下,删除.centerText的“宽度”属性 – naikus 2010-07-30 19:32:18

0

也许overflow:hidden结合height:1em将帮助?这将裁剪太长的文本。

.centerText { 
    float: left; 
    text-align: center; 
    width: 33%; 
    overflow:hidden; 
    height: 1em; 
} 
+0

这确实会裁剪它,但它不是我会寻找的解决方案。我只想拿整个div,只要有它的位置。谢谢。 – Rudy 2010-07-30 19:09:03