2013-04-07 25 views
0

我有内联块元件麻烦与宽自直插块元件不更新

width: auto; 

和与JavaScript编程改变高度。

这是一个jsFiddle演示它;

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

的想法是,如果你调整窗口的大小时,JavaScript设置元素的高度,内联块元素的宽度自动调整以适应内容。

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

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

请看这个修改过的jsfiddle;

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

这一个在Chrome,现在强制宽度:自动;开始工作,在Firefox上它仍然不会更新。

有没有理由为什么宽度不会更新时设置这种方式?

问候,

+0

什么宽度是否你期望它被设置为?内联块元素缩小到*其子*的大小。 – cimmanon 2013-04-08 00:05:30

+0

如果您的元素数量是固定的,您可以将''width'分配给您的元素数量计算的百分比。例如,你有4个元素,然后设置'宽度:25%;'元素将自动更新它们的宽度。 – Ragnarokkr 2013-04-08 00:14:43

+0

我期待宽度匹配里面的100%高度图像的宽度。出于某种原因,如果刷新显示样式,它将重新调整li的大小以匹配其中的图像宽度。我不想以编程方式将宽度设置为宽度:auto;应该对孩子做尺寸。 – Joel 2013-04-08 07:57:01

回答

0

您可以通过带孩子的宽度设定旁边的高度,以什么用width:auto预计将元素的宽度:

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

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

+0

谢谢!我宁愿不以编程方式设置宽度,因为我的问题是宽度:自动不按预期工作,这并不真正解决问题。 – Joel 2013-04-08 07:59:11