首頁 > web前端 > css教學 > 主體

為什麼「Element.style」為內嵌樣式表樣式和主樣式表樣式回傳不同的值?

Susan Sarandon
發布: 2024-11-10 21:28:02
原創
851 人瀏覽過

Why Does `Element.style` Return Different Values for Inline and Master Stylesheet Styles?

顯示主樣式表中的樣式擷取差異

透過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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板