2017-04-11 113 views
0

我想用另一個元素覆蓋現有的任意元素。我發現的所有現有答案都要求將要覆蓋的元素具有相對位置。但是,我不能控制這一點。用另一個覆蓋任意元素

例如,給定一個p元素,我想用div元素完全覆蓋它。 p元素可能沒有相對位置。

這可能嗎?如果是這樣,我怎麼能實現這個(最好沒有jQuery)?

謝謝!

+0

所以你不能調整樣式來添加相對位置嗎? – epascarello

+0

它是否必須是一個獨特的元素? ergo,no':before'或':after' tricks – 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";