Html Internet Explorer在使用内联块悬停锚点时变长div
我使用Html Internet Explorer在使用内联块悬停锚点时变长div,html,css,internet-explorer,internet-explorer-9,Html,Css,Internet Explorer,Internet Explorer 9,我使用inline block将多个锚作为选项卡排列在一个选项卡条中,在溢出时水平滚动,而不是将选项卡包装成多行 这在Windows上的Chrome和FF以及iPad上的Chrome/Safari上都非常有效,但在IE9上却非常时髦 IE 9上的问题是,当我悬停锚定标记时,更改元素颜色和BG颜色的psuedo选择器会导致父div增加其高度。我假设这是一个IE9错误,但我一直无法验证 我发现了一个修复方法,它涉及到用溢出:hidden和特定的高度将父元素包装在块元素中,但如果可能,我希望避免使用特
inline block
将多个锚作为选项卡排列在一个选项卡条中,在溢出时水平滚动,而不是将选项卡包装成多行
这在Windows上的Chrome和FF以及iPad上的Chrome/Safari上都非常有效,但在IE9上却非常时髦
IE 9上的问题是,当我悬停锚定标记时,更改元素颜色和BG颜色的psuedo选择器会导致父div增加其高度。我假设这是一个IE9错误,但我一直无法验证
我发现了一个修复方法,它涉及到用溢出:hidden
和特定的高度
将父元素包装在块元素中,但如果可能,我希望避免使用特定高度
问题:
:hover
psuedo类时才会发生这种情况黑客修复小提琴: 示例代码:
.tabs{
显示:块;
空白:nowrap;
背景颜色:蓝色;
溢出:自动;
}
.标签a{
显示:内联块;
边框:1px实心#ccc;
颜色:#fff;
}
.a:悬停{
背景色:红色;
}
这里有一些内容
非常好。这似乎只影响Internet Explorer 9,在版本10及更高版本中解决。虽然我不完全清楚是什么导致了问题,但问题肯定是.tabs
容器在每次通过其嵌套的.tab
元素时的高度都会增加
解决所有浏览器问题的简单方法是对包含的元素应用max height
。我采取的具体做法如下:
.tabs{
溢出:自动;
最大高度:100%;
空白:nowrap;
背景颜色:蓝色;
}
Hmm,我刚刚意识到我可以用display:inline
来代替,但是我仍然想知道为什么这个“bug”只在IE@nothingisnecessary真棒的虫子!我是IE团队的工程师,我很乐意为您调查此事。谢谢!我有点高兴这是一个错误,因为没有其他解释是有意义的,我开始怀疑我的理智。IE8不受影响(没有尝试7,因为没有内联块支持,我们在XP end of life中停止支持它)。确认您的修复程序适用于IE 8、9、10、11、Chrome(最新版本)、FF(最新版本)以及iPad上的Chrome&Safari。(比我使用display:inline
和line height
来弥补填充、改变颜色等的解决方案要好得多。)