非附加元素宽度在 Chrome 中不起作用

Posted

技术标签:

【中文标题】非附加元素宽度在 Chrome 中不起作用【英文标题】:non attached element width not working in Chrome 【发布时间】:2017-03-02 13:20:39 【问题描述】:

我正在尝试在 Chrome 中找到解决方案。在 Firefox 中,我可以通过以下方式获取元素的大小(来自 CSS),而无需附加/显示它:

var elem = $('<div class="someclass"></div>');
var w = elem.width();
console.log(w);

FF 给了我正确的尺寸,但 Chrome 总是返回 0。有什么解决方法吗?

Fiddle here

【问题讨论】:

所有这些解决方案都让我附加到 DOM。我想如果使用 Chrome 而不附加,则没有解决方案。 【参考方案1】:

尝试通过 IDClassname 获取选择器。 Jsfiddle

var elem = $('<div class="someclass"></div>');
var w = $(".someclass").width();
console.log(w);

它适用于所有浏览器;

【讨论】:

它在 chrome 中工作。检查 JSfiddle。在您的示例中,您没有使用 javascript 创建任何 html 或附加任何 HTML 代码,那么它将如何工作。 请阅读问题。我不想附加到 DOM。 对不起。那么不同的浏览器会以不同的方式呈现。【参考方案2】:

这是某些浏览器的一些奇怪行为。

不过我找到了解决办法:

var elem = $('<div class="someclass"></div>').hide();
$('body').append(elem);
var width = elem.width();
elem.remove();
console.log(width);

【讨论】:

谢谢,我已经知道答案了。正如问题所述,我试图找到一种不附加的方法。 我知道,但找不到以不附加的方式模拟它的方法【参考方案3】:

所有这些解决方案都让我附加到 DOM。我想如果使用 Chrome 而不是附加,则没有解决方案。

【讨论】:

以上是关于非附加元素宽度在 Chrome 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

空白:nowrap;并且 flexbox 在 chrome 中不起作用

在附加元素中附加元素在jQuery中不起作用

响应式媒体查询在 Google Chrome 中不起作用

CSS 媒体查询在 IE 9 中不起作用

锚元素在 Firefox 和 chrome 中不起作用

SVG 元素的 CSS 动画在 Chrome 中不起作用