html - IE8 及以下 inline-block CSS

标签 html internet-explorer css

所以我知道 IE8 和更低版本不喜欢 inline-block 但我读到 inline 应该导致相同的行为。所以我修改了将我的 main.css 复制到 main-ie8below.css 并将所有 inline-block 更改为 inline .我使用以下代码来尝试实现这一点:

        <!--[if lte IE 8]>
            <link rel="stylesheet" type="text/css" href="/media/css/main-ie8below.css" />
        <![endif]-->
        <!--[if gt IE 8]>
            <link rel="stylesheet" type="text/css" href="/media/css/main.css" />
        <![endif]-->
        <!--[if !IE]><!-->
            <link rel="stylesheet" type="text/css" href="/media/css/main.css" />
         <!--<![endif]-->

但是,这是行不通的。看来我的 if 语句不正确。是这样吗,还是我漏掉了什么?

这是有问题的 HMTL(已删除无用的内容):

    <nav id="main_nav" role="navigation"><!--
                            <div><a href=""><img src=""  /></a></div><!--
                    --><div><a href=""><img src=""  /></a></div><!--
                    --><div><a href=""><img src=""  /></a></div><!--
                    --><div><a href=""><img src=""  /></a></div><!--
                    -->

这是一个 fiddle ,除了没有图像:

http://jsfiddle.net/bqXsU/

最佳答案

你需要这样使用:

display: inline;
zoom: 1;

我猜你错过了 zoom: 1 部分。如果您要与适用于所有 IE 版本和现代浏览器的现有样式表耦合,则最好使用这种方式:

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

但问题是,您的 CSS 可能无法通过验证。


没看懂,你哪一段没看懂。让我解释一下我使用的三个东西。

  1. Star Hack:在样式规则前添加一个 *,将使其仅对 IE 7 及以下版本可见。
  2. 验证问题:规则 *zoom*display 不是有效的 CSS 属性。
  3. 这是如何工作的?在 IE 7 及以下版本中,此 zoom: 1; 将触发元素的 hasLayout 属性,从而使其可用 widthheightmarginpadding

关于html - IE8 及以下 inline-block CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14898928/

相关文章:

javascript - 是否可以在 Disqus 线程加载后使用 javascript 覆盖 Disqus 2012 中的 css?

javascript - 更改选择框的内容其他

javascript - 如何支持 Internet Explorer 11 中的 promise ?

php - Internet Explorer 中的表单总是发布

javascript - 为什么 IE8 会阻止 IE7 中出现的弹出窗口?

html - Z-index 不适用于父项中的子项

javascript - 如何使用 glitch.com 记录输入?

javascript - 从抓取的 HTML 中提取 Javascript 对象的正则表达式

javascript - 根据数据属性仅显示一个div

javascript - 中断 CSS 动画导致奇怪的转换