DIV显示inline-block的用于IE8,IE7和旧的浏览器的等效(Equivalent of

2019-07-31 20:41发布

这是关于跨浏览器兼容一种很普通的问题。

在设计中的我currenly上实现布局和风格,我想唯一的办法开展工作的各个点(而不是诉诸使用图片)是使用display:inline-block CSS样式选项。 然而,这不是IE8和其他老版本浏览器的支持,这导致我的设计beign坏了。

因此,有两个部分,我的问题1 - 有没有实现对IE8类似或同等效果的方法是什么? 2 - 如果没有,怎么能最好让我的设计顺利降级?

供您参考,这里的地方,这是在我的设计中使用的一个例子。

<div style="width:20px; height:20px; display:inline-block; background-color:rgb(200,120,120); margin-right:10px;"></div>Direct

它是20×像素颜色块来解释图表中的颜色。

更一般这个问题出现时,我想对文本等的文本正文内的特定位更大的格式化和布局控制。

在设计中,我目前的工作我会反正放弃对旧的浏览器类型的支持,因为它是canvas元素上严重依赖。 不过,我认为这将是问一个很好的问题,因为我之前已经多次遇到的问题。

谢谢

Answer 1:

这里是覆盖这个话题很好的资源: http://foohack.com/2007/11/cross-browser-support-for-inline-block-styling/

基本上IE有一个称为“hasLayout的”触发。 触发,这将允许您使用display:inline-block的块级元素上(默认情况下IE仅允许对本地联元素内联块)。

消防福克斯的另外旧版本不支持inline-block的两种,但有一个“内联栈”值( moz-inline-stack )。

这里,就我所知,最好的方式得到一个跨浏览器display:inline-block

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


Answer 2:

给出这里 :

IE支持嵌入式块,但是仅适用于可本身内联元素。 所以,如果你真的想使用inline-block的,你只限于跨度和强身EMS ...

是的,这是不符合逻辑的,因为一般来说,如果你使用的股利或跨度不要紧......但请记住-这是IE浏览器:)

因此,只要改变<div><span>这就是它!



Answer 3:

使用此代码

*display: inline;
*vertical-align: middle;


Answer 4:

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

您可以添加inline-block的其他浏览器,但IE浏览器,你可以添加样式*。 它只能在IE



文章来源: Equivalent of div display inline-block for IE8, IE7 and older browsers