相关疑难解决方法(0)

为什么getComputedStyle在元素创建后立即为像素值返回'auto'?

我使用Mustache生成一些HTML并用于insertAdjacentHTML将其放在页面上.它显然转换为DOM结构,因为我可以通过使用document.querySelector('.contentarea')调用来获得它的句柄.但是,如果我尝试获取宽度或高度的像素值,它会不断回击'auto'.

认为它可能只是一个问题getComputedStyle,我尝试使用.getBoundingClientRect.offsetWidth不是.无论返回0.它可以工作,如果我把它放在一个稍微延迟调用setTimeout(function(){}, 1),但这对我的生产代码不实用,因为它需要进入同步构造函数.

这种情况在Firefox(Aurora)和Chrome中都有发生.我记得读过一篇关于Mozilla如何通过使用惰性框架构造来改进DOM操作性能的文章,并认为框架可能存在一些有点过于懒惰的错误,但是因为它也在Chrome中发生,所以这似乎不太可能.

有没有人对这里发生的事情或如何解决这个问题有任何想法?插入HTML后,我真的需要像素高度/宽度信息.

PS:是否有任何浏览器在单独的线程中进行HTML解析/构建?我在想这可能会导致这种行为.

NEVERMIND:这是我自己的错.我只是没有注意到display: none;在代码尝试获取测量值之前设置的样式.

javascript css dom

11
推荐指数
1
解决办法
5551
查看次数

如何获取由css设置的元素的字体大小

我正在编写一个简单的jQuery,用于将元素的字体大小更改一定百分比.我遇到的问题是,当我使用jQuery的$('#el').css('font-size')获得大小时,它总是返回一个像素值,即使用em设置也是如此.当我使用Javscript的el.style.font-size属性时,它将不会返回一个值,直到一个值被同一属性显式设置.

有什么方法可以用Javascript获得原始CSS设置的字体大小值吗?您的方法如何跨浏览器友好?

提前致谢!

编辑:我应该注意所有经过测试的浏览器(请参阅下面的评论)允许我使用上面提到的两种方法使用'em'值设置文本大小,此时jQuery .css()返回一个等效的' px'的值和Javascript .style.fontSize方法返回正确的'em'值.也许最好的方法是在页面加载时初始化元素,立即为它们提供em值.

javascript css jquery dom

9
推荐指数
2
解决办法
1万
查看次数

如何判断元素是否具有流体宽度

可能重复:
使用JavaScript确定元素是否具有固定宽度或百分比宽度

我需要知道元素是否具有流体宽度.我可以深入了解为什么如果它真的需要,但我不认为它.

基本上,是元素的N%宽度还是Npx|pt|em|etc宽度?现在我只看到获得当前计算宽度的方法.因此,即使一个元素是100%宽,获取JS中的值也会返回,500px或者在那个时刻返回广泛的值.

是否有任何黑客或JS API我不知道要知道这个或获得原始的CSS值?

另外,请不要jQuery.这是我的JS库.

html javascript css

7
推荐指数
1
解决办法
278
查看次数

标签 统计

css ×3

javascript ×3

dom ×2

html ×1

jquery ×1