首頁 > web前端 > css教學 > 當在主樣式表中設定顯示時,為什麼「myDiv.style.display」會回傳空字串?

當在主樣式表中設定顯示時,為什麼「myDiv.style.display」會回傳空字串?

Linda Hamilton
發布: 2024-11-06 19:31:02
原創
586 人瀏覽過

Why Does `myDiv.style.display` Return an Empty String When Display Is Set in a Master Stylesheet?

掌握樣式表與內嵌樣式:了解顯示屬性行為

嘗試使用JavaScript 擷取DIV 元素的顯示屬性時,出現差異已顯示被觀察到。將顯示器設定為 HTML 元素內的無內聯,myDiv.style.display 按預期返回「none」。但是,在主樣式表中將顯示定義為 none 會導致透過 myDiv.style.display 存取時出現空字串。

此行為是根據 JavaScript 的操作方式來理解的。透過 JavaScript 存取 DOM 元素時,無法直接取得該元素的計算樣式,因為它是在 CSS 檔案中定義的。

解決方案:利用 getCompulatedStyle

來取得要計算樣式並解決此差異,必須使用 getCompulatedStyle 屬性或 Internet Explorer 的 currentStyle。此屬性檢索所需樣式屬性的計算值。

用於檢索計算樣式的JavaScript 函數

function getStyle(id, name) {
  var element = document.getElementById(id);
  return element.currentStyle
    ? element.currentStyle[name]
    : window.getComputedStyle
    ? window.getComputedStyle(element, null).getPropertyValue(name)
    : null;
}
登入後複製

用法

利用getStyle 檢索顯示屬性:

var display = getStyle('myDiv', 'display');
alert(display); //will print 'none' or 'block' or 'inline' etc
登入後複製

以上是當在主樣式表中設定顯示時,為什麼「myDiv.style.display」會回傳空字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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