首頁 > web前端 > css教學 > 為什麼 jQuery 的 `height()` 和 `width()` 函數回傳帶有 `display: none` 的元素值?

為什麼 jQuery 的 `height()` 和 `width()` 函數回傳帶有 `display: none` 的元素值?

Mary-Kate Olsen
發布: 2024-10-29 07:57:30
原創
885 人瀏覽過

Why Do jQuery's `height()` and `width()` Functions Return Values for Elements with `display: none`?

jQuery:height()/width() vs. "display:none"

您可能假設具有CSS 樣式的元素在jQuery中,「display:none」的height() 和width() 將會回傳0。然而,正如提供的示例所示,情況並非總是如此。

為什麼會發生這種情況?為了理解這種行為,我們需要深入研究 jQuery 如何處理隱藏元素。

如果元素的 offsetWidth 為 0(jQuery 將其解釋為「隱藏」),它會嘗試確定其高度。它透過暫時改變元素的樣式來實現此目的:

  • 位置:「絕對」
  • 可見性:「隱藏」
  • 顯示:「區塊」

一旦透過getWidthOrHeight(...) 取得高度並根據需要調整邊框和填充,就會恢復之前的樣式。

本質上,jQuery 會取得隱藏元素,暫時顯示它在文件流之外,檢索其高度,然後再次隱藏它,所有這些都不會影響頁面的視覺外觀。這使得 height() 和 width() 甚至可以為隱藏元素提供準確的測量,前提是它們的父元素可見。

此機制內建於 jQuery 的 height() 和 width() 方法中,消除了您的需要手動操作元素的可見性。

以上是為什麼 jQuery 的 `height()` 和 `width()` 函數回傳帶有 `display: none` 的元素值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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