IE8显示内联块无法正常工作

tdh*_*h87 49 css internet-explorer-8

说我有以下代码

<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>
Run Code Online (Sandbox Code Playgroud)

我希望这在IE8中显示内联.我读过的所有地方都说这应该有用,IE8支持内联块.然而,经过一个早上的尝试,我无法得到上面的排队.我知道我可以浮动它,但是对于我页面上的其他元素(这里没有显示),我需要使用更加标记的'clearfix'.我只需要针对IE8,并且很想知道为什么内联块在显然支持时对我不起作用.在Google Chrome浏览器中查看时,上述代码可以满足我的需求.

Pat*_*dev 50

我猜你还没有申报doctype.尝试将其放在html标记之前的第一行:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Run Code Online (Sandbox Code Playgroud)

您粘贴的代码在IE8中使用该doctype.

  • 我爱你,这给我带来了很多IE-ache! (3认同)

cat*_*nor 37

并非所有IE8版本似乎都能正常工作.我发现给定的代码,即使使用DOCTYPE,也不能在早期版本的IE 8.0.6001.18702中使用.

但是,较低IE版本的解决方法也在特定的IE 8上完成了它的工作:

<!--[if lt IE 8]>
<style type="text/css">
    li { display: inline; }
</style>   
<![endif]-->
Run Code Online (Sandbox Code Playgroud)

  • 仅当IE8处于兼容性视图(IE7仿真)时才会发生这种情况.这不是IE8版本不同的问题,而是渲染模式不正确的问题.即使使用DOCTYPE也会发生这种情况并不奇怪,因为即使使用DOCTYPE,IE7及更早版本也始终存在此问题.此外,8.0.6001.18702是RTM,而不是早期版本,甚至不相关,因为`display:inline-block`支持从第一个测试版开始已经完成.对此的正确解决方案是`<meta http-equiv ="X-UA-Compatible"content ="IE = edge">` (23认同)

men*_*tat 18

您可以设置margin-right:1px

为我工作很好.

  • [救援网站档案](http://web.archive.org/web/20120224235209/http://www.compsoft.co.uk/Blog/2009/11/inline-block-not-quite-inline- blocking.html) (3认同)
  • 到目前为止,这是所有答案中最好的选择。大提示! (2认同)

Idr*_*dra 13

根据我的经验,使用声明内联块的通用方式(IE6 +)总是更好的主意.即使您每次尝试说新浏览器仅支持更新的浏览器时,某些客户仍然会对其文档类型感到困惑,然后销售人员说,它需要修复,因为客户仍然可以看到它和没有得到它,它是由他们的IE设置而不是我们的错.当您使用内联块来构建结构内容时,如果用户在旧IE上查看该站点是出于某种原因,则会使站点完全崩溃.

display: inline-block;
*zoom: 1;
*display: inline;
Run Code Online (Sandbox Code Playgroud)

  • "惯用语",但你写了`if`而不是`for` ... @HerrSerker (18认同)

小智 9

IE8会将它视为块级元素,除非你使用float.

.divInlineBlock
{
   display: inline-block;
   float: left;
}   
Run Code Online (Sandbox Code Playgroud)


Chr*_*ris 5

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

IE8默认呈现为IE7?