了解JavaScript 中element.style 屬性的行為
當您在CSS 中定義樣式時,JavaScript 中的element.style 屬性的行為有所不同直接透過元素的style 屬性來設定它們。
當您在 CSS 中指派樣式時,element.style 對於顯示等屬性傳回一個空字串。這是因為該元素沒有套用任何內聯樣式,且 CSS 中的 style 屬性會覆寫任何內聯樣式。
但是,如果直接透過元素設定style 屬性,則element.style 將傳回
顯示屬性為空的原因
CSS中顯示屬性為空的原因是元素的顯示屬性繼承自其父元素或預設CSS 樣式規則。在提供的範例中,display 屬性在 CSS 中設定為 block,但元素本身沒有明確設定 display 屬性。
因此,當您存取 element.style.display 屬性時,它會傳回空字串,因為元素沒有套用內聯樣式,並且無法透過 element.style 存取從 CSS 繼承的樣式。
擷取 CSS 應用的樣式
如果需要擷取 CSS 應用的樣式,可以使用 window.getCompulatedStyle() 方法。此方法傳回一個對象,該物件表示元素的計算樣式值,包括從父元素繼承並透過級聯樣式表套用的樣式。
例如:
const displayValue = window.getComputedStyle(document.getElementById('test')).display;
在本例中,即使 element.style.display 傳回空字串,displayValue 將包含 CSS 中指定的「區塊」值。
內聯CSS 與外部CSS
雖然內聯CSS 不被認為是程式碼模組化和可維護性的良好實踐,但在使用element.style 屬性時,您仍然應該了解內聯樣式和外部樣式的不同行為。
透過理解這種行為,您可以準確地檢索或修改 JavaScript 應用程式中的樣式,並有效分離 HTML、CSS 和 JavaScript 程式碼的關注點。
以上是當 CSS 中定義樣式時,為什麼 element.style.display 會回傳空字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!