Html IE8及以下内联块CSS

Html IE8及以下内联块CSS,html,internet-explorer,css,Html,Internet Explorer,Css,所以我知道IE8及其以下版本不喜欢内联块,但我读到内联应该会导致相同的行为。因此,我修改了将我的main.css复制到main-ie8below.css,并将所有inline块更改为inline。我使用以下代码尝试实现这一点: <!--[if lte IE 8]> <link rel="stylesheet" type="text/css" href="/media/css/main-ie8below.css" />

所以我知道IE8及其以下版本不喜欢
内联块
,但我读到
内联
应该会导致相同的行为。因此,我修改了将我的
main.css
复制到
main-ie8below.css
,并将所有
inline块
更改为
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(去除无用的东西):


这是一把小提琴,除了没有图像:


您需要这样使用:

display: inline;
zoom: 1;
display: inline-block;
*display: inline;
*zoom: 1;
我猜你错过了缩放:1部分。如果您使用的是适用于所有IE版本和现代浏览器的现有样式表,那么最好使用这种方式:

display: inline;
zoom: 1;
display: inline-block;
*display: inline;
*zoom: 1;
但问题是,您的CSS可能无法验证


我不明白,哪部分是你不明白的。让我解释一下我用过的三件事

  • 星型黑客:在样式规则前面加上一个
    *
    ,将使其仅对IE 7及以下版本可见
  • 验证问题:规则
    *zoom
    *display
    不是有效的CSS属性
  • 这是如何工作的?在IE 7及以下版本中,这是
    缩放:1
    将触发元素的
    hasLayout
    属性,从而使其可用
    宽度
    高度
    边距
    填充

  • 您需要使用以下方法:

    display: inline;
    zoom: 1;
    
    display: inline-block;
    *display: inline;
    *zoom: 1;
    
    我猜你错过了缩放:1部分。如果您使用的是适用于所有IE版本和现代浏览器的现有样式表,那么最好使用这种方式:

    display: inline;
    zoom: 1;
    
    display: inline-block;
    *display: inline;
    *zoom: 1;
    
    但问题是,您的CSS可能无法验证


    我不明白,哪部分是你不明白的。让我解释一下我用过的三件事

  • 星型黑客:在样式规则前面加上一个
    *
    ,将使其仅对IE 7及以下版本可见
  • 验证问题:规则
    *zoom
    *display
    不是有效的CSS属性
  • 这是如何工作的?在IE 7及以下版本中,这是
    缩放:1
    将触发元素的
    hasLayout
    属性,从而使其可用
    宽度
    高度
    边距
    填充


  • 事实证明,这是IE8无法识别HTML5元素的原因。通过添加HTML5,我能够修复它。

    结果是HTML5元素没有被IE8识别。通过添加HTML5,我能够修复它。

    你能更详细地解释最后一部分吗?@ThatidotGuy补充了解释。如果你什么都不懂,请告诉我。:)不幸的是,它并没有为IE8修复它,我发布了我使用
    inline block
    的html代码片段。它本质上是一种水平导航bar@thatidiotguyIE 8实际上喜欢
    内联块
    :)“我不知道为什么它对你不起作用。好吧,我要放一把小提琴来展示我在做什么,也许再问这个问题,谢谢你的帮助。你能再详细解释一下最后一部分吗?”Thatidotguy补充道。如果你什么都不懂,请告诉我。:)不幸的是,它并没有为IE8修复它,我发布了我使用
    inline block
    的html代码片段。它本质上是一种水平导航bar@thatidiotguyIE 8实际上喜欢
    内联块
    :)我不知道为什么它对你不起作用。好吧,我准备放一把小提琴来展示我在做什么,也许再问一次这个问题,感谢您在处理IE功能检测时的帮助,我相信最好的方法是坚持HTML5样板方式:
    并在
    main.css
    中为
    .lt-ie8添加规则。我的内联块元素{}
    到底有什么不起作用?屏幕截图或JSFIDLE将非常有用。我怀疑您的问题可能是没有添加填充/边距(它们不适用于内联元素),但我不知道IE8及以下版本的缩放,在处理IE特性检测时,这很可能是你的问题。我相信最好的方法是坚持HTML5样板的方式:
    ,并在
    main.css
    中为
    .lt-ie8添加规则。我的内联块元素{}
    到底有什么不起作用?屏幕截图或JSFIDLE将非常有用。我怀疑您的问题可能是没有添加填充/边距(它们不适用于内联元素)。不过,我不知道IE8及以下版本的缩放,这也可能是您的问题