顯示主樣式表中的樣式擷取差異
透過JavaScript 的Element.style 屬性存取元素的樣式時,請務必注意以下方面的潛在差異是基於樣式聲明方式的行為。
在所描述的場景中,初始顯示:沒有在 DIV 元素上內嵌設定樣式。但是,當初始樣式移動到主樣式表時,該元素被隱藏。有趣的是,存取元素的 style.display 屬性傳回一個空字串,而透過內聯樣式存取相同屬性則傳回「none」。
此行為歸因於 聲明的樣式 之間的區別和計算樣式。聲明的樣式是內聯或透過樣式表明確指派給元素的樣式。另一方面,計算樣式代表元素的最終渲染樣式,考慮了所有相關因素,包括繼承和級聯樣式。
存取 Element.style 時,您只獲得聲明的樣式。若要取得反映套用於元素的實際樣式的計算樣式,必須使用 window.getCompulatedStyle() 方法。此方法提供了元素樣式的全面表示,包括受繼承、級聯和瀏覽器預設值影響的屬性。
透過使用getCompulatedStyle(),您可以可靠地檢索元素的顯示樣式,即使它最初是透過主樣式表隱藏的:
const element = document.getElementById('myDiv'); const display = getComputedStyle(element).getPropertyValue('display'); // display will now return 'none' or 'block', as appropriate
這種更正的方法可確保您存取元素的準確計算樣式,無論其樣式如何聲明。
以上是為什麼「Element.style」為內嵌樣式表樣式和主樣式表樣式回傳不同的值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!