宽度为auto的内联块元素不会更新

时间:2013-04-07 23:59:29

标签: javascript html css dom

我在使用

进行内联块元素时遇到问题
width: auto;

并使用javascript以编程方式更改高度。

这是一个演示它的jsFiddle;

http://jsfiddle.net/uJZjB/2/

这个想法是,如果你调整窗口大小,javascript会设置元素的高度,并且内嵌块元素的宽度会自动调整以适应内容。

但是,宽度不会自动更新,而是保持原始宽度,而不是调整大小以匹配内容的宽度。

如果通过隐藏和显示元素或更改显示样式e.t.c来使dom刷新。宽度更新了!

请参阅此修改过的jsfiddle;

http://jsfiddle.net/uJZjB/5/

这一个在chrome上,现在强制宽度:auto;为了启动和工作,在Firefox上似乎仍然没有更新。

这样设置时宽度不会更新的原因是什么?

此致

1 个答案:

答案 0 :(得分:0)

您可以通过获取子项的宽度,将元素的宽度与高度一起设置为width:auto的预期值:

$('#myul li').css('width',$('#myul li').children().width() + 2); // compensate for border

JSFiddle:http://jsfiddle.net/uJZjB/4/