怎么能<! - [if IE]>工作而不工作?

时间:2017-12-21 14:55:52

标签: css internet-explorer if-statement

根据IE9中的开发者工具这个CSS:

   / * meyers reset * /
 / *主要的一个* /
<! -  [if IE]>
  
<![ENDIF]  - >
 

成功,因为它导致识别/包含 。但是样式表或其任何声明都没有显示在工具/样式面板中。它的声明都不起作用。

这怎么可能?

我已经通过更改 color 声明来测试样式表无法正常工作。

IE开发人员工具只显示主样式表 two.css 和meyers重置 one.css 工作

实际上没有列出

one.css ,但CSS面板没有自动换行(仅适用于main / html面板),水平滚动条未到达声明的末尾(!)所以没有空间来实际显示文件名。

2 个答案:

答案 0 :(得分:0)

我认为它正在逐步淘汰,现在只有旧版本的IE支持。我最近发现了这个css片段,媒体查询中的所有内容都只出现在IE浏览器中。

编辑:我不确定你是否应该担心IE9,因为甚至微软都不再支持IE9了。该版本现在最多11个!

@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
  /* Anything in here only occurs in IE */
}

答案 1 :(得分:0)

  

有条件的评论在IE 9中消失了

这只适用于IE浏览器

  <!--[if IE 9]><link type="text/css" rel="stylesheet" href=“ie.css" /><![endif]-->

这在IE中无效,它将被隐藏,因此您可以添加主要的CSS文件。

<!--[if !IE]--><link type="text/css" rel="stylesheet" href=“one.css" /><!--[endif]-->

<!--[if !IE]--><link type="text/css" rel="stylesheet" href="two.css" /><!--[endif]-->

**这是Paul Irish以IE浏览器为目标的方式**

<!--[if lt IE 7 ]> <html class="ie6"> <![endif]-->
<!--[if IE 7 ]>    <html class="ie7"> <![endif]-->
<!--[if IE 8 ]>    <html class="ie8"> <![endif]-->
<!--[if IE 9 ]>    <html class="ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html> <!--<![endif]-->
  

在HTML5网页上使用HTML5 Shiv很简单;你可以安装或不安装图书馆。下面是一个如何有条件地包含仅适用于版本低于9的Internet Explorer浏览器的HTML5 Shiv的示例。脚本应该包含在页面元素中,在任何样式表之后:

  <!--[if lt IE 9]>
  <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
  <![endif]-->
  

有条件的评论在IE 10中消失了

使用一点点JavaScript

将用户代理添加到元素中

<强> JS:

var b = document.documentElement;
b.setAttribute('data-useragent',  navigator.userAgent);
b.setAttribute('data-platform', navigator.platform );

IE 10的用户代理字符串是:

Mozilla / 5.0(兼容; MSIE 10.0; Windows NT 6.2; Trident / 6.0)

这将导致:

<html data-useragent="Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)">

然后您可以设置如下样式:

<强> CSS:

html[data-useragent*='MSIE 10.0'] h1 {
  color: blue;
}

Codepen.io

上查看此内容

Main Source