Css !使用OmniFaces的IE条件注释

Css !使用OmniFaces的IE条件注释,css,jsf,jsf-2.2,omnifaces,conditional-comments,Css,Jsf,Jsf 2.2,Omnifaces,Conditional Comments,我根据条件注释设置图像宽度,如下所示 <o:conditionalComment if="lte IE 9"> <style> .image-width { width: 210px; } </style> </o:conditionalComment> <o:conditionalComment if="!IE"> <style>

我根据条件注释设置图像宽度,如下所示

<o:conditionalComment if="lte IE 9">
    <style>
        .image-width {
            width: 210px;
        }
    </style>
</o:conditionalComment>

<o:conditionalComment if="!IE">
    <style>
        .image-width {
            width: 216px;
        }
    </style>
</o:conditionalComment>

!IE
在某种程度上是一种极端条件。这完全没有用

基本上,每个浏览器都会忽略注释中的所有内容。IE是唯一一个真正解释与
匹配的注释内容的浏览器。请注意,其他浏览器不会解释它们,仍然像对待
一样对待它们

当您使用
时!IE
,则IE浏览器不会解释注释的内容。但其他非IE浏览器也不支持,原因很简单,它们不支持条件注释。实际上,任何浏览器都不会解析注释。它的效果与
完全相同。唯一可行的理由是
!IE
存在的条件是,微软假设“其他”浏览器在将来也会支持条件注释(这毕竟是一个严重的错误假设;更重要的是,自从IE10以来,对条件注释的支持就被取消了)

为了实现具体的功能需求,最好交换两个样式声明,并使主样式声明成为无条件的。在CSS中,后者声明一个具有更高的优先级

<style>
    .image-width {
        width: 216px;
    }
</style>
<o:conditionalComment if="lte IE 9">
    <style>
        .image-width {
            width: 210px;
        }
    </style>
</o:conditionalComment>

.图像宽度{
宽度:216px;
}
.图像宽度{
宽度:210px;
}
就这么简单。连我都明白这一点

顺便说一下,你最好使用resp<代码>元素。

只能与
一起使用,而不能与
一起使用?当我尝试时,
不起作用。然而,当
被一个HTML
标记替换时,同样的事情也起了作用。
自动重新定位到头部。另见。第一个可以使用
,第二个可以使用
(如我的回答中的“resp(rectively)”所示)。您可以使用
#{resource['library:name']}
生成正确的URL,另请参见。