编辑:我最终求助于td { max-width: 460px; }
,它解决了 IE 和 FF 中的直接问题。尽管仍然对这种布局行为的原因感到好奇。
我正在处理使用两列表格布局的现有页面。在左侧的一个单元格中,有一个<object><param /><param /><embed /></object>
嵌入 Flash 地图的普通片段(http://backspace.com/mapapp/):
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" id="zoom_map" style="display: block !important;" height="251" width="460">
<param name="movie" value="/[path]/world.swf?data_file=/[path]/data.xml">
<param name="quality" value="high">
<param name="bgcolor" value="#FFFFFF">
<embed src="/[path]/world.swf?data_file=/[path]/data.xml" quality="high" bgcolor="#FFFFFF" name="Clickable World Map" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" style="display: block !important;" title="Adobe Flash Player" align="top" height="251" width="460">
</object>
问题在于,在 IE 9 和 FF 21.0 中,即使在使用 Firebug 或 IE 的开发工具进行检查时,对象和嵌入似乎都是预期的 460 像素宽,但表格列会变得明显更宽。在 FF 中使用 Firebug 删除嵌入时,地图会消失,但布局不会改变。当同时删除对象时,列会缩小到缩进宽度。
我在某处读到display: block
有时会解决此类问题,但这已经到位并且似乎无济于事。在 Chrome 中一切都很好,即地图右侧没有额外的空间。
我尝试在样式属性中设置宽度。我还尝试将整个东西包装在一个宽度为 460px 的 div 中并溢出:隐藏,但也无济于事。
我似乎不走运谷歌搜索这个问题,所以我希望有人能够提供帮助。提前致谢。