这是关于跨浏览器兼容一种很普通的问题。
在设计中的我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元素上严重依赖。 不过,我认为这将是问一个很好的问题,因为我之前已经多次遇到的问题。
谢谢
这里是覆盖这个话题很好的资源: 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;
给出这里 :
IE支持嵌入式块,但是仅适用于可本身内联元素。 所以,如果你真的想使用inline-block的,你只限于跨度和强身EMS ...
是的,这是不符合逻辑的,因为一般来说,如果你使用的股利或跨度不要紧......但请记住-这是IE浏览器:)
因此,只要改变<div>
到<span>
这就是它!
使用此代码
*display: inline;
*vertical-align: middle;
display: inline-block;
*zoom: 1;
*display: inline;
您可以添加inline-block的其他浏览器,但IE浏览器,你可以添加样式*。 它只能在IE