占用所有水平空间的Div

时间:2010-12-01 21:10:20

标签: css html

为什么呢? 我说明了宽度,所以它应该和它里面的内容一样大。

#swfbox {
 padding: 10px 10px 10px 10px;
 margin: 50px auto 0px;
 background: #310600;
 border: 3px solid #4b0900;
}

我把它放在中心并加载swf文件,所以为了工作,我必须将其宽度设置为swf文件的宽度,这是不好的,因为我的每个文件都有不同的宽度。

2 个答案:

答案 0 :(得分:8)

<div>元素是块显示的元素,这意味着它们默认为100%宽度,除非另有说明。

如果您希望元素根据其内容进行展开,您可能需要尝试将display上的<div>属性设置为inline(或者只使用span因为它本质上是一个内联div。)

编辑:

我猜内联并没有像我预期的那样工作,所以我今天学到了一些东西。您要做的是设置display: inline-block,但这会带来一系列问题。

首先,根据Quirks Mode page for the display property,IE6和IE7仅对具有自然inline-block的元素支持display: inline,这意味着您需要使用<span>元素而非{{ 1}}元素。

其次,<div>有一套自己的怪癖,你应该在使用它之前阅读,以防止被进一步的“陷阱”感到惊讶。 This pageinline-block上发表了非常好的文章。

答案 1 :(得分:0)

检查一下这个解决方案:http://www.tightcss.com/centering/center_variable_width.htm 浮动swfs所在的div(浮动收缩以适应内容)

  

相对定位外浮子   左:50%,左边是   页面中间。然后   相对定位内浮子   左:-50%完全改变它   外部div的宽度的1/2到   离开,使它居中。

该链接提供了完整的解释和示例。