【发布时间】:2010-10-11 03:01:25
【问题描述】:
我正在尝试将一些(垂直堆叠的) display:block 元素放在 display:inline-block 元素中。根据 CSS 规范,inline-block 元素应该是一个包含块,因此它可以在其中包含 display:block 元素,并且这些元素不应影响布局的其余部分。
但是,display:inline-block 元素中的 display:block 元素会破坏页面的其余部分;在内联块中什么都没有,甚至像段落这样的基本元素也是如此;只有简单的文本才能避免页面其余部分的中断(中断是指将其他 div 向下移动,例如,在这种情况下,左侧的红色块向下移动一行并在其上方有一个空白区域)。我使用的是 Firefox 3.0.6。
<html><head><style type="text/css">
#left {
display: inline-block;
background: red;
width: 20%;
height: 100%;
}
#right {
display: inline-block;
background: green;
width: 80%;
height: 100%;
}
</style></head><body>
<div id="left">Left</div><div id="right">Right</div>
</body></html>
如预期的那样,上面显示为两个窗格,左红色,右绿色。如果我将“右”更改为
<p>Right</p>
或完全删除它,或者(如我所愿)用几个 div 替换它,我得到了错误的格式。
这是 Firefox 的错误,还是我做错了什么,还是我的预期不正确? (FWIW,IE 7 平等地破坏它们,好像它不理解 inline-block;没关系,这是一个内部应用程序。我只使用 Firefox)。我也许可以使用浮动/边距获得我想要的布局,但我不想这样做。
【问题讨论】:
-
你使用
对
吗? -
没有。我只想要一个简单的
在右侧 div 中。在这种情况下,段落本身不需要有 id。
标签: html css cross-browser