0

我在使用 inline-block 元素时遇到问题

width: auto;

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

这是一个演示它的jsFiddle;

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

这个想法是,如果您调整窗口大小,javascript 会设置元素的高度,而 inline-block 元素的宽度会自动调整以适应内容。

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

如果您通过隐藏和显示元素或更改显示样式等来刷新 dom,则宽度会更新!

请看这个修改过的jsfiddle;

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

这个在 chrome 上,现在强制宽度:自动;开始工作,在 Firefox 上它似乎仍然没有更新。

以这种方式设置时宽度不会更新是否有原因?

问候,

4

1 回答 1

0

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

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

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

于 2013-04-08T06:37:45.570 回答