0

简而言之,我想这样做(条件部分,我知道如何包含<h:outputStyleSheet>):

<link rel="stylesheet" href="[path-to-dist]/leaflet.css" />
<!--[if lte IE 8]>
    <link rel="stylesheet" href="[path-to-dist]/leaflet.ie.css" />
<![endif]-->

在 JSF 2 中。

谢谢!

4

4 回答 4

1

采用<h:outputText escape="false">

<h:outputText value="&lt;!--[if lte IE 8]&gt;&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;[path-to-dist]/leaflet.ie.css&quot;/&gt;&lt;![endif]--&gt;" escape="false" />

是的,这是一条丑陋的路线,但实际上没有其他方法,因为 Facelets 本质上是一种基于 XML 的视图技术。


更新:如果您碰巧使用 JSF 实用程序库OmniFaces,您可以只使用它的<o:conditionalComment>组件

<o:conditionalComment if="lte IE 8">
    <link rel="stylesheet" href="[path-to-dist]/leaflet.ie.css" />
</o:conditionalComment>
于 2012-05-16T11:56:43.767 回答
0

我认为您应该能够包装<h:outputText value="#{bean.pathToDist}" />到您的链接。喜欢<link rel="stylesheet" href="<h:outputText value="#{bean.pathToDist}" />/leaflet.css" />

于 2012-05-16T07:49:11.620 回答
-1

尝试:

<f:verbatim>
&lt;!--[if IE]&gt;
<link rel="stylesheet" href="path/to/file.css" />
&lt;![endif]--&gt;
</f:verbatim>
于 2012-05-16T12:01:28.847 回答
-1

我试过这个:

<h:outputStylesheet library="css" name="blueprint/screen.css" />
<f:verbatim>&lt;!--[if lt IE 8]&gt;</f:verbatim>
<h:outputStylesheet library="css" name="blueprint/ie.css" />
<f:verbatim>&lt;![endif]--&gt;</f:verbatim>
<h:outputStylesheet library="css" name="esap.css" />

html输出是:

<!--[if lt IE 8]><![endif]-->
<link rel="stylesheet" media="screen" type="text/css" href="/esap/javax.faces.resource/blueprint/screen.css.xhtml?ln=css" />
<link rel="stylesheet" media="screen" type="text/css" href="/esap/javax.faces.resource/blueprint/ie.css.xhtml?ln=css" />
<link rel="stylesheet" media="screen" type="text/css" href="/esap/javax.faces.resource/esap.css.xhtml?ln=css" />

条件 html 放在样式表链接之前。

于 2013-06-14T14:48:30.947 回答