鉴于这种简单的结构:当一个子元素水平溢出时,为什么父项的正确填充被忽略?
<div id="parent">
<div id="child">Lorem ipsum</div>
</div>
这个CSS:
#parent {
width: 200px;
height: 200px;
padding: 20px;
overflow-x: scroll;
}
#child {
width: 500px;
}
现场演示:http://jsfiddle.net/523me/5/
注意,家长有一个20px
填充和孩子水平溢出(因为它更宽)。如果将父级一直滚动到右侧,您会看到子级触及父级的右侧边缘。
所以,父母应该有一个正确的填充,但它被忽略。看起来,当孩子有固定的宽度时,父母的正确填充不适用。 (这是由一个标准指定的?我想知道,请让我知道,如果你发现任何东西!)
有没有办法强制正确的填充应用在这种情况下没有必须删除任何来自流动的元素(通过浮动还是定位)?
截图1 - 正确的填充被忽略。这是所有当前浏览器的行为。
截图2 - 正确的填充适用。这是我想要完成的。 (顺便说一句,屏幕截图是从IE7,这是不忽略右填充的浏览器。)
有趣的是,它需要'inline-block'来工作,因为'block' [不这样做](http:// jsfiddle。 net/fwTAS/1 /),但人们会认为它会。显示研究的链接为+1。 – ScottS 2012-04-07 14:46:00
@ScottS是的,它是那些该死的浏览器,它们都有自己对CSS规范的解释,尽管它们试图维护它(除了非标准的流氓混乱,即IE)。 'block'和它的好友'inline-block'应该共享他们所有的盒子模型特性,并且只能通过inline-block的方式来区分页面流和混合内联的东西。我当然想知道更多关于这个特定行为的信息。 – 2012-04-07 15:00:02
@Jota'显示:内联块风险有两个小内容的孩子并肩出现:http://jsfiddle.net/523me/20/从我也为链接。 – 2012-04-07 15:02:33