Css HTML:使用条件注释

Css HTML:使用条件注释,css,internet-explorer-8,comments,conditional,Css,Internet Explorer 8,Comments,Conditional,你好 我想应用两种不同的CSS代码来修复IE8中的一些字体呈现问题(faux bold),如果它们具有相同的名称,则IE8无法识别所有字体系列,相反,它只能识别第一个字体系列,因此我尝试使用条件注释来修复这一问题: 第一个代码用于旧版本的IE(包括IE8): 第二个是针对IE9、IE10和所有非IE浏览器(Chrome、Firefox、Opera、Safari…),它们都没有这个冒牌粗体的问题: <!--[if IE 9 | !IE]><!--> <l

你好

我想应用两种不同的CSS代码来修复IE8中的一些字体呈现问题(faux bold),如果它们具有相同的名称,则IE8无法识别所有字体系列,相反,它只能识别第一个字体系列,因此我尝试使用条件注释来修复这一问题:

第一个代码用于旧版本的IE(包括IE8):


第二个是针对IE9、IE10和所有非IE浏览器(Chrome、Firefox、Opera、Safari…),它们都没有这个冒牌粗体的问题:

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

我知道第一个代码是正确的(或者可能不是:p),所以我想知道第二个代码是否也是正确的,因为当我在IE中更改兼容模式时,我没有得到我期望的结果,当然条件中有问题[如果IE 9 |!IE] 我还想知道放置这两个条件注释的正确顺序(如果有)。
请帮我解决这个问题,因为我是一个与兼容性相关的新手:/

条件评论是IE特有的功能。其他浏览器只是将它们视为普通的注释。请记住,HTML注释以
开头。因此
。另一方面,
是一个完整的注释,非IE浏览器将处理之后的任何内容

因此,我建议您使用:

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


从常规HTML解析器(非IE)的角度来看,这是两个包含链接元素的常规注释。

您可以先为IE9+和其他浏览器应用css,然后为IE8或更低版本应用条件注释,因此,如果浏览器小于或等于IE8,则
font.css
中的
font-family
规则将被
IE8fonts.css
中的规则覆盖。这样可以避免复杂和不必要的条件注释

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


希望有帮助。

解决原来的问题不是更好吗?我认为IE8在正确声明的粗体字体上没有问题。无论最初的问题在细节上是什么,它也可能发生在其他浏览器上,因此使用IE版本嗅探不是正确的方法。
<link href="fonts.css" rel="stylesheet" type="text/css">
<!--[if lte IE 8]>
     <link href="IE8fonts.css" rel="stylesheet" type="text/css">
<![endif]-->