0
我正在开发一个web应用程序......不幸的是,它必须使用有史以来最糟糕的软件,ie6。IE6 CSS显示:表修复?
我真的很喜欢CSS display:table
和display:table-cell
属性,但它当然在ie中不起作用。
有没有人发现此修复?我一直在寻找,但没有找到任何东西。
有条件的CSS,.htc文件,javascript ...什么?
我真的想避免使用浮动和清除所有东西
我正在开发一个web应用程序......不幸的是,它必须使用有史以来最糟糕的软件,ie6。IE6 CSS显示:表修复?
我真的很喜欢CSS display:table
和display:table-cell
属性,但它当然在ie中不起作用。
有没有人发现此修复?我一直在寻找,但没有找到任何东西。
有条件的CSS,.htc文件,javascript ...什么?
我真的想避免使用浮动和清除所有东西
也许用CSS饼? http://css3pie.com/ – Thew 2011-03-16 15:53:06
这是用于布局,还是实际的表格数据,只要放入'
布局,我在说的CSS属性显示:表,而不是HTML表 – ZolaKt 2011-03-16 16:06:32
回答
对不起。有没有修复,使IE6支持CSS
display:table
。在IE6中实现这种布局的唯一方法是实际使用<table>
元素。第一个问题:你真的需要支持IE6吗?如果你可以简单地放弃对它的支持,你会解决自己的一大堆问题,包括这一个。 IE6目前的全球使用率低于3%,在大多数发达国家甚至更低。
如果您仍然需要支持IE6,那么您最明显的解决方案就是简单地吞下您的语义标记自豪感,并使用
<table>
标记。如@Tom所述,下一个最佳解决方案是使用
display:inline-block;
编写布局。inline-block
允许您将元素定义为块,但仍将它们保留在文本流(默认情况下<img>
标记的工作方式)。如果将它与固定的元素宽度以及行周围的wapper div结合使用,则可以实现类似于表格的操作,尽管可能很难使其随页面宽度动态扩展。围绕此问题的一个大“陷阱”bug是
inline-block
仅适用于IE6/7中默认样式为display:inline
的元素。换句话说,它适用于<span>
,但不适用于<div>
。不是灾难,而是需要注意的事情,特别是因为你特意询问关于IE6的支持。除此之外,好消息是你应该能够在没有任何其他黑客或变通方法的情况下使用display:inline-block
。来源
2011-03-16 17:21:11 Spudley
不幸的是,我必须支持,即不是我的决定......我个人会毫不犹豫地放弃它......第二件事,我不认为你的统计数据是有效的,几年前,即大约50%......我真的不认为它已经下降这么低...不幸的是,仍然有很多人安装XP,谁不知道什么是浏览器,并使用ie6作为默认...悲伤,但真正的 – ZolaKt 2011-03-16 18:29:17
关于您的解决方法解决方案,我认为病态只是坚持使用浮动,因为即使限制内联块 – ZolaKt 2011-03-16 18:30:29
@ZolaKt - IE **作为一个整体**仍然在45%左右,但IE6的使用正在下降悬崖。没有一个统计数据网站是真正准确的,但为了总体趋势的良好局面,我建议http://gs.statcounter.com/。他们目前在全球范围内展示的IE6为4%,在欧洲为1.9%,在美国为2.1%。其他人显示类似的统计。但这是任意的;您需要注意*您的*网站的使用情况。如果你仍然有足够的IE6用户来支持他们,那么你应该这样做。真的,这是一个成本决定:支持IE6的成本是多少,以及你会失去多少用户。 – Spudley 2011-03-16 18:46:43
IE不支持display:table和display:table-cell,但IE7及以下版本支持display:inline-block。使这项工作的常用方法是通过执行以下操作:
记住,CSS给你很多的定位功率和给予你希望你的布局看,我也许可以给一些背景你更好的解决方案。
由于误解让我澄清上面的代码。 display:-moz-inline-stack;是针对较老版本的Firefox声明的。 zoom:1; IE有一个名为hasLayout的属性,这是一种触发它的方法。 *显示:内联被称为用于隐藏来自所有非IE浏览器这条线的a *属性劈
变焦:1和*显示:内联有效地允许块级元素的行为类似于内联元素(这样内联块将在IE6 +工作)
欲了解更多信息,请阅读:
来源
2011-03-16 17:00:43 Tom
一个很好的一般答案,但具体的建议有些过时了。 '-moz-inline-stack'并不是必须的,除非你需要支持少于v2的Firefox,这意味着你真的不需要它。你不需要'* display:inline;',因为它在IE6中重载了'inline-block'。 IE6/7确实支持'inline-block'(虽然有一些'gotcha'bug);只需要'* display:inline'来支持IE5.5。 'zoom:1'是各种IE问题的常见错误修正,但对'inline-block'没有任何影响,所以我不知道这里提到的原因。 – Spudley 2011-03-16 17:12:08
注意:默认情况下内联元素支持内嵌块。它不会在IE6中的div元素上工作。 – easwee 2011-03-16 17:36:59
@Spudley如果需要IE6支持,那么我疯狂的假设,旧版本的Firefox也将被要求。 – Tom 2011-03-16 21:15:30
相关问题