2012-03-20 23 views
1

divの第2要素の中心を、最初の要素の幅を知らなくてもどのようにすることができますか。左の浮動小数点を中央の要素と組み合わせる

"foo"を左側に浮動させ、 "bar"を元のdivの中央に配置します。

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

これを行うための別の方法があり、マージン、左のセットなしの静的な幅に:私は「foo」というの幅を知っていれば、私はこれを行うことができますか?

+0

'bar'は何の中心に置かれるのですか? 'div'の中央か' foo'の幅の後の 'div'の残りの中央にありますか? – Bazzz

+0

を元のdivの中央に配置します。元の投稿を更新しました。 – Intra

答えて

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

これはうまくいきますが、その理由を理解できません。 width:100pxを使用する意義は何ですか? – Intra

+0

そうでなければ、それは親の幅全体を満たすでしょう。技術的には依然として中心に置かれているかもしれませんが、おそらくあなたのやり方ではありません; – Supr

+0

'display:block'はブロックレベルの要素になります。つまり、このソリューションでは、要素の自動シュリンクラップ動作が失われます。 – Supr

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/

関連する問題