2012-03-20 26 views
1

如何在不知道第一個元素寬度的情況下將第二個元素居中放在div中。浮動左邊與中心元素相結合

我想讓「foo」浮動到左邊,「bar」以原始div爲中心。我能做到這一點,如果我知道「富」的寬度:

<div> 
    <span style="float:left;">foo</span> 
    <span style="margin-left:-10px;">bar</span> 
</div> 

是否有另一種方式做到這一點,沒有利潤率左設置爲靜態寬度?

+0

'酒吧'是以什麼爲中心?在'div'的中心還是在'foo'的寬度之後'div'的剩餘中心? – Bazzz 2012-03-20 18:10:18

+0

以原始div爲中心。我已更新原始帖子。 – Intra 2012-03-20 18:11:16

回答

5

Center of the parent div?

<div> 
    <span id="f"> foo foo foo foo foo foo foo foo </span> 
    <span id="c">bar</span> 
</div> 

CSS:

#f{ 
    float:left; 
} 
#c{ 
    display:block; 
    margin: 0 auto; 
    width:100px; 
} 
+0

這工作,但我不明白爲什麼。使用寬度的意義是什麼:100px? – Intra 2012-03-20 18:19:54

+0

因爲否則它將填充父項的整個寬度。從技術上講,它仍然會居中,雖然可能不是你想要的方式;) – Supr 2012-03-20 18:23:25

+0

請注意,'display:block'將它變成一個塊級元素,默認填充整個寬度。換句話說,使用此解決方案,您將失去元素的自動收縮包裝行爲。 – Supr 2012-03-20 18:29:31

0

我,爲什麼你會想這有點混亂,但在這裏:http://jsfiddle.net/Wexcode/jL87v/

<div> 
    <span class="foo">foo</span> 
    <span class="bar">bar</span> 
</div> 

CSS:

.foo { float: left; } 
.bar { 
    text-align: center; 
    margin: 0 auto; 
    display: block; } 
0

你可以這樣寫:

CSS

.parent{ 
    text-align:center; 
} 
.child1,.child2{ 
    text-align:left; 
} 
.child1{ 
    float:left; 
} 
.child2{ 
    vertical-align:top; 
    display:inline-block; 
    *display:inline;/* For IE7 */ 
    *zoom:1;/* For IE7 */ 
    border:1px solid red; 
} 

HTML

<div class="parent"> 
    <span class="child1">foo</span> 
    <span class="child2">bar</span> 
</div> 

檢查這個http://jsfiddle.net/6fMve/1/