影响所有 IE 的 IE8 条件样式 sheet

IE8 Conditional Style sheet affecting all IE

我的一些 CSS 元素在 IE8 中不工作。所以我使用条件样式 sheet 为它们设置 display:none;但是,这会影响所有使用 IE 浏览器的人,无论版本如何。我正在使用以下代码:

<!DOCTYPE html>
<html>
    <head>
        <title>website title</title>
        <meta name="description" content="web description">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">

        <!-- Stylesheets -->

        <link rel="stylesheet" type="text/css" href="bootstrap/css/bootstrap.css">
        <script src="bootstrap/js/bootstrap.js"></script>
        <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
        <link rel="stylesheet" type="text/css" href="css/style.css">

<!--[if lte IE 8]><link rel="stylesheet" href="css/ie8.css"><![endif]-->

    <!--[if lt IE 9]>
      <script src="bootstrap/js/html5shiv.js"></script>
      <script src="bootstrap/js/respond.min.js"></script>
      <![endif]-->
    </head>

我哪里错了?

[if lte IE 8]表示如果IE版本小于8则添加样式表。你需要 [if IE 8] 条件。

我的理解是您想要针对包括 IE8 在内的所有旧 IE,因此 lte IE 8 (lower/equal) 可以。您也可以将 lt IE 9 合并到上面的那个中,像这样:

<!--[if lte IE 8]>
    <script src="bootstrap/js/html5shiv.js"></script>
    <script src="bootstrap/js/respond.min.js"></script>
    <link rel="stylesheet" href="css/ie8.css">
<![endif]-->

对于调试,您可以尝试将类似 body {10px solid red !important;} 的内容添加到您的 ie8.css 中,看看它是否适用于正确的浏览器。