为什么 jQuery 的 `height()` 和 `width()` 对于具有 `display:none` 的元素返回非零值?
jQuery 的非传统 Height() 和 Width() 行为与“display:none”
jQuery 的 height() 和 width() 方法是广泛用于确定网页上元素的可见尺寸。然而,在处理设置了 CSS 属性“display:none”的元素时,似乎会出现意外的行为。
问题
传统上,人们相信具有“display:none”的元素的高度和宽度为零。然而,jQuery 的情况并非总是如此。考虑以下示例:
<code class="html"><div id="target" style="display:none;"> a </div></code>
<code class="css">alert($("#target").height());</code>
在此示例中,“目标”元素的高度不为零,而是一个非零值。这种不一致引发了一个问题:为什么带有“display:none”的元素有时会在 jQuery 中返回非零高度和宽度?
答案
要理解这种行为,我们需要深入研究 jQuery 的 height() 和 width() 方法的内部工作原理。当元素的可见 offsetWidth 为 0(表示它是“隐藏”)时,jQuery 会尝试计算其实际尺寸。它通过暂时覆盖元素的 CSS 属性来实现此目的:
- position: "absolute"
- visibility: "hidden"
- display: "block"
通过这些修改,jQuery 会检索元素的高度,并根据需要考虑边框和填充。一旦确定了高度,jQuery 就会恢复原始的 CSS 属性,确保不会发生可见的更改。
此过程允许 height() 和 width() 对于隐藏元素正确工作,只要它们的父元素可见。本质上,jQuery 模拟了在文档流之外显示元素、检索其尺寸,然后再次隐藏它的行为,所有这些都在幕后通过单个操作完成。这消除了开发人员手动显示和隐藏元素来获取其尺寸的需要。
以上是为什么 jQuery 的 `height()` 和 `width()` 对于具有 `display:none` 的元素返回非零值?的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

在本周的平台新闻综述中,Chrome引入了一个用于加载的新属性,Web开发人员的可访问性规范以及BBC Move

有很多分析平台可帮助您跟踪网站上的访问者和使用数据。也许最著名的是Google Analytics(广泛使用)
