2017-05-27 14 views
0

絶対配置要素が「トップ」位置のパーセンテージを無視する原因は何ですか?パーセンテージは "left"のために働いています。ピクセルとvhを使用すると垂直方向に配置することができます。ちょうどパーセンテージではありません。絶対配置要素 - 正常なパーセンテージが機能しない

+1

途中に目に見えない固定要素があるかもしれません。コードをご覧ください。 –

+1

あなたの問題を示すコードはありません。推測が難しいです:) –

+0

ここでは、問題の解決に関連するものがあります:https://stackoverflow.com/questions/28238042/setting-css-top-percent-not-working-予期した通り – slevy1

答えて

2

これは、絶対要素の親を "position:relative"にする必要があるためです。したがって、絶対要素の上部および左のフィールドは、親に対して相対値を取得します。

+0

親ではありません。要素は、最初に配置された(静的ではない)祖先要素に対して配置されます。 – HTCom

0

レイアウトをその親要素に定義する必要があります。

レイアウトは、これはブラウザが割合の計算がその親にrealtionで行われる必要があることを理解するのに役立ち及びませんが、「固定」などの「静的」「絶対」、「」に対して

以外の可能性ウィンドウサイズ。

0

明らかに、要素を絶対的に配置する方法は複数あります。ここでは、親DIVを使用せずに一つの方法は次のとおりです。

CSS:

html,body { 
    width:100%; 
    height:100%; 
    background:red; 
    } 
    .centered-axis-xy { 
    position: absolute; 
    left: 50%; 
    top: 50%; 
    transform: translate(-50%,-50%); 

} 
div.cyan5050 { 
    width:50%;height:50%; 
    background:cyan; 
} 
div p { 
    width:100%; 
    height:50%; 
    margin-top: 20vh; 
    text-align:center; 
} 

HTML:

<div class="cyan5050 centered-axis-xy"> 
     <p>Content to Display</p> 
</div> 


あなたは割合を使用する場合は、1つは、提供する必要があり、通常fiddle

を参照してください。 DIVタグのパーセンテージの基礎、すなわち、包含する外側DIVの高さおよび幅パーセンテージ、あるいはresp html要素とbody要素に影響します。しかし、この場合、CSSにはhereという応答的な配置技術が組み込まれているため、CSSトランスフォームにtranslate()functionが装備されているため、html要素とbody要素の割合はオプションです。

関連する問題