2017-04-11 11 views
0

既存の任意の要素を別の要素でカバーしたいと思います。私が見つけたすべての既存の答えには、対象となる要素が相対的な位置をとる必要があります。しかし、私はそれをコントロールしていません。任意の要素を別の要素でカバーする

たとえば、p要素を指定すると、div要素で完全にカバーしたいと考えています。 p要素は相対位置を持たないかもしれません。

これは可能ですか?もしそうなら、私はこれをどのように(できればjQueryなしで)達成することができますか?

ありがとうございます!

+0

だから、スタイルを調整して相対位置を追加することはできません。 – epascarello

+0

それはユニークな要素でなければなりませんか? ergo、no ':before'や':after'というトリック – Roberrrt

+0

@epascarelloこれはページを変更するかもしれないと心配していますが、これは私が許可するものではありません。問題のページを変更せずに、Chromeデベロッパーツールのように要素を「強調表示」しようとしています。 – mikeecb

答えて

0

@epascarelloの提供です。

var elementToCover = ...; 
var rect = elementToCover.getBoundingClientRect(); 

var overlayElement = document.createElement("div"); 

overlayElement.style.position = "absolute"; 
overlayElement.style.zIndex = "999"; 
overlayElement.style.top = rect.top + "px"; 
overlayElement.style.left = rect.top + "px"; 
overlayElement.style.width = (rect.right - rect.left) + "px"; 
overlayElement.style.height = (rect.bottom - rect.top) + "px"; 
関連する問題