2011-12-25 3 views
3

Hereは私が設定したjsFiddleです。子の要素を親の中心から垂直方向にオフセットするにはどうすればよいですか?

親要素と子要素の高さは不確定です(変更されることを意味します)。子要素の位置は絶対値でなければなりません。

子要素を親の中心から5ピクセル分垂直にオフセットするにはどうすればよいですか?

HTML:

<div class="parent"> 
    <div class="child"></div> 
</div> 

CSS:

.parent{ 
    position:relative; 
    margin: 10% auto; 
    background:lightgray; 
    height:50px;/*parent's height will change after*/ 
    width:200px; 
} 
.parent .child{ 
    position:absolute; /* needs to be absolutely position */ 
    top:0; 
    bottom:0; 
    margin:auto; 
    width:100%; 
    height:20px;/*child's height will change after*/ 
    background:darkgray; 
} 
+0

あなたの問題を解決しますか! 「オフセット5ピクセル」とはどういう意味ですか?また、JavaScriptを使用しますか? –

+0

子は親の100%であるため、視覚的な違いはありません。 – Purag

+0

オフセット5pxどこから?上?底?両側?あなたの例によると、子供の要素は、あなたが必要とするように真ん中に垂直に配置されています... – Yaniro

答えて

3

は5pxの場所をオフセット?このよう

このよう

---->Updated Fiddle

または

---->Updated Fiddle

+0

私の不明な表現に申し訳ありません、 – Defims

+0

その場合...更新されたフィドル - >(http://jsfiddle.net/zS7yK/5/) – Scott

+0

子どもの身長が変わらないときはうまく動作します。TX〜 – Defims

3

私が正しくあなたを理解した場合は、垂直方向に5つのピクセルで子供を相殺したいです。これは、要素が親の中央から上下に移動する必要があるかどうかはわかりませんが、は上に移動する例、hereは下に移動する例です。

ここで私はそれを上に移動するために、子供のCSSに追加したコードです:

top:50%; 
margin-top:-15px; 

また、子供のための現在のtopbottom宣言を削除するには。

親の上から50%を設定し、それを中央に配置した上のオフセットからその高さの半分を引きます。そのオフセットに5ピクセルを加算(または減算)してさらにオフセットします。高さが可変の場合

、(これは、5つのピクセルを、それを上に移動)このCSSを使用します。

top:-5px; 
bottom:0; 
margin:auto; 

Example。下; 0:0;

+0

ああ、ありがとうございます。別の前提条件として、子供の身長も不確実です。 – Defims

+0

@Defims:私の答えに編集を参照してください。 – Purag

+0

子供の身長も不確かな場合は、子供の高さの半分を得ることはできません。子要素のトップ|パディングトップ|ボーダートップのパーセント値は、子要素ではなく親に基づいているため、取得方法はわかりませんそれはcss〜 – Defims

1

使用border-top
私のここFiddleトップと

  • を参照してください。マージン:自動;親要素と子要素の高さが「不確実」である場合、子要素は中間に揃えることができます。

  • border-top:10px;子要素オフセットを作ることができます。

と多分あなたは、あなたがあなたの質問に言い換えることができます

+0

とwow〜これは私が探しているもの、tx〜 – Defims

関連する問題