2017-05-08 34 views
0

ツールチップを作成する必要がありますが、その位置が絶対的で相対的な親を必要としないため、私のスタイルを破る。JS要素の位置を絶対位置で取得する場合の体の位置を取得

<div style="position: relative;"> 
    <input> 
    <p class="tooltip">tooltip</p> 
</div> 

私はツールチップが入力の上にあるようにする必要がありますが、常に本体を基準にしてください。

これをどのように計算できますか?スタイルに

+2

'クラスは= "相対位置" とは何ですか? 'style =" position:relative; "'を意味しますか? – Huelfe

+0

はい、私の間違いありがとう – ng2user

+0

ラップ入力+ツールチップにdiv ?? –

答えて

-1

変更クラス:position: absolute

<div> 
    <input> 
    <p class="tooltip" style="position:relative;">tooltip</p> 
</div> 
+0

質問をお読みください – ng2user

+0

ツールチップを相対的に配置したい場合は、ツールチップに 'position:relative;'スタイルを設定してください - 変更されたコードを参照してください – Sventies

0

Elementsは常にrelativeで最初の親要素にrealtiveされています。 (または静的および固定以外のもの)ので、それを修正する

あなたは親

<div> 
    <input> 
    <p class="tooltip">tooltip</p> 
</div> 

またはそれはabsoluteは相対的要素の外にツールチップを移動位置とにかくだからでposition: relativeを使用しないようにする必要があります。 position:absolute;を使用

<p class="tooltip">tooltip</p> 
<div style="position: relative;"> 
    <input> 
</div> 
+0

入力の最後にツールチップを表示する必要はありません – ng2user

+0

OK。私はこれを行うにはこれらの2つの方法があると思う。あなたが望むアプローチであれば、親またはマークアップのCSSまたは「位置固定」 – Orlandster

+0

マークアップを移動する方法があるかどうかを調べる – Orlandster

0

divposition:relative;をマークし、最も近い位置付け要素、この場合にツールチップを位置決めすべきです。 CSS3 reference on absolute positioningを参照してください。

したがって、絶対配置コンテキストに影響を与えないように、相対配置を持つ親要素を心配する必要はありません。

<div style="position: relative;"> 
    <input> 
    <p class="tooltip" style="position:absolute; top:0; left:0;>tooltip</p> 
</div> 

私はあなたの質問を誤解している場合を除き、もっと詳細な例を挙げてください。

EDIT:

あなたがposition: relativeを使用しないようにしようとしている場合は、JavaScriptでツールチップの位置を設定することができます; `:

var input = document.getElementById('input-id'); 
var tooltip = document.getElementById('tooltip-id'); 

tooltip.style.left = (input.offsetLeft)+'px'; 
tooltip.style.top = (input.offsetTop)+'px'; 
+0

身体に基づいて要素を配置する必要があります。私のように私は他の親をもらっていないのです。 – ng2user

関連する問題