2013-01-05 15 views
7

私は2つのdiv、親と子を持っています。その子の左側(左の枠)は親の中心になります。css「left」が機能しない

なぜこのコードは機能しませんか?子の場合はleft: 50%、動作していません。

<div id="outher"> 
    <div id="inner"> 

    </div> 
</div> 

CSS:あなたはabsoluteまたはrelativepositionを設定する必要が

#outher { 
    width: 1000px; 
    height: 1000px; 
    background-color: #ccc; 
} 

#inner { 
    width: 400px; 
    height: 300px; 
    background-color: #090; 
    left: 50%; 
} 

はデモhttp://jsfiddle.net/vrse2/5/

答えて

18

#inner { 
    width: 400px; 
    height: 300px; 
    background-color: #090; 
    position: absolute; 
    left: 50%; 
} 
3

あなたのCSSにposition: absolute;を追加する必要があります。絶対位置決めにはleftが使用されます。あなたのケースでは

#inner { 
    width: 400px; 
    height: 300px; 
    background-color: #090; 
    position: absolute; 
    left: 50%; 
} 
2

用途:

margin-left: 50%; 

または:

position:relative; 
left:50%; 
+0

「margin-left」はまったく異なるものです。詳細については、http:// stackoverflowを参照してください。com/questions/6419411 /トップ左 - マージン - トップマージン - 左。 –

9

CSS leftのみ位置のエレメントで動作します。

Quoted from W3C

Values <length> | <percentage> | auto | inherit 
Initial value auto 
Applies to positioned elements 
Inherited No 

てみ

#inner { 
    width: 400px; 
    height: 300px; 
    background-color: #090; 
    position: absolute; 
    left: 50%; 
} 

グッド読ん

  1. MDN : CSS Reference -left (Best IMHO)
  2. W3C : CSS/Properties/left
+0

ありがとう、非常に良い答え – RIKI

+0

@OTARIKIありがとう...そしてあなたの非常に歓迎 –

1

次で試してみてください。

HTMLパート:

<div id="outher"> 
    <div id="inner"> 

    </div> 
</div> 

CSSパート:

#outher { 
    width: 1000px; 
    height: 1000px; 
    background-color: #ccc; 
} 

#inner { 
    width: 400px; 
    height: 300px; 
    background-color: #090; 
    left: 50%; 
    margin:0 auto; 
    position: absolute; 
} 

あなたの問題を解決するのに役立つと思います。

0

%を左に付けていないと、イメージはスタックし続けるか、元のイメージのエッジの間に左のギャップを使います。これは上に指摘されておらず、非常に混乱していました。

+0

これをコメントとして投稿してください。 –

関連する問題