IE8显示内联块不工作

说我有以下代码

<style type="text/css" media="all"> span, ul, ul li { display: inline-block; vertical-align: top; margin: 0; padding: 0; list-style: none; } </style> <span>i would want</span> <ul> <li>this</li> <li>on</li> <li>one line.</li> </ul> 

我想这在IE8中内联显示。 我已经阅读所有的东西说这应该工作,IE8支持内联块。 然而,经过一个上午尝试,我不能得到上述排队。 我知道我可以漂浮它,但与我的网页上的其他元素(这里没有显示),我需要使用更清晰的“清除修复”。 我只需要瞄准IE8,并希望知道为什么内联块不支持我显然支持。 上面的代码是我在Google Chrome中查看时所需的。

我猜你还没有宣布文档types。 试着把这个放在html标签之前的第一行:

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

您粘贴的代码在IE8中使用该文档。

并不是所有的IE8版本似乎都是一样的。 我发现,即使使用DOCTYPE,给定的代码在IE 8.0.6001.18702(早期版本)中也不起作用。

然而,IE浏览器版本的解决方法也是在IE8上完成的。

 <!--[if lt IE 8]> <style type="text/css"> li { display: inline; } </style> <![endif]--> 

你可以设置margin-right:1px

为我工作得很好。

根据我的经验,使用通用的方式(IE6 +)来声明一个内联块总是一个更好的主意。 即使你每次试图说新浏览器都支持新的浏览器时,一些客户端仍然会混淆他们的文档types,然后销售人员说,它需要被修复,因为客户端仍然可以看到它,没有得到它,这是他们的IE设置,而不是我们的错。 当你使用内嵌块来做结构化的东西的时候,如果用户在某个老的IE浏览器上查看这个网站的话,那么这个网站就不会完全崩溃。

 display: inline-block; *zoom: 1; *display: inline; 

IE8将它视为一个块级元素,除非你使用float。

 .divInlineBlock { display: inline-block; float: left; } 

请注意,如果您正在查看一个Intranet站点,IE8将像IE7一样运行,这可能会在您开发时发生! 看到这个StackOverflow问题:

IE8默认呈现为IE7?

对于IE8 – 你可以添加一个特定的声明:

display: inline-table;

这很好。