【发布时间】:2012-02-23 11:44:25
【问题描述】:
看看下面的示例 HTML 代码,它适用于除 IE9 之外的所有浏览器(尚未测试早期的 IE 版本)。
例如,比较 IE9 和 Chrome 显示的页面,您会看到 IE9 为线条增加了额外的高度。这发生在 display:inline-block 和 overflow-x:hidden;存在。该问题也仅在存在时才会发生(但我需要其他功能,这只是一个显示问题的最小示例)。删除或溢出-x:隐藏;然后 IE9 也会显示更紧凑的线条(与 Chrome 相同的高度)。
<!DOCTYPE>
<style> span { display: inline-block; width: 50px; overflow-x: hidden; } </style>
<div><span>1st</span><span>first</span></div>
<div><span>2nd</span><span>second</span></div>
<div><span>3rd</span><span>third</span></div>
<div><span>4th</span><span>fourth</span></div>
<div><span>5th</span><span>fifth</span></div>
<div><span>6th</span><span>sixth</span></div>
<div><span>7th</span><span>seventh</span></div>
<div><span>8th</span><span>eight</span></div>
<div><span>9th</span><span>ninth</span></div>
链接到以上内容的页面:http://pgn4web.devio.us/pgn4web/IE9bug.html 尝试用 IE9 和 Chrome 打开链接!在 IE9 中,您会看到以更多空格分隔的行。如果然后按 F12 打开 IE9 调试器并禁用 overflow-x:hidden;属性,您会看到列表在 IE 上变得更加紧凑;如果您对 Chrome 调试器执行相同操作,则显示不会改变。
有什么建议可以避免 IE9 添加的额外高度(通过保持和溢出-x:hidden;)?
谢谢
【问题讨论】:
-
您应该在进行跨浏览器 Web 开发之前使用重置样式。 HTML5 Boilerplate 是一个很好的开始。
-
@balexandre:你可能是对的,但仍然没有解释 IE9 的行为,我越想越像一个 bug……