Css 仅适用于XSL文档的IE7样式表
如何将IE7和lower only样式表添加到XSL页面?我尝试将其添加到模板中以获取标题信息,如下所示:Css 仅适用于XSL文档的IE7样式表,css,xslt,internet-explorer-7,conditional-comments,Css,Xslt,Internet Explorer 7,Conditional Comments,如何将IE7和lower only样式表添加到XSL页面?我尝试将其添加到模板中以获取标题信息,如下所示: <xsl:template name="header"> <!--[if lte IE 7]> <link rel="stylesheet" type="text/css" href="/rcm/verisign/style/2012/ie7.css"/> <![endif]--> </xsl:template> 即使我在纯
<xsl:template name="header">
<!--[if lte IE 7]>
<link rel="stylesheet" type="text/css" href="/rcm/verisign/style/2012/ie7.css"/>
<![endif]-->
</xsl:template>
即使我在纯HTML文档中使用了相同的代码段,条件语句也不会在我的文档中执行,而且效果很好。给出了什么?解析器将该注释视为XSL中的注释,并将从生成的HTML代码中删除 如果要在HTML中生成注释,需要将其包含在
CDATA
块中,这样XSL解析器就会将其视为纯文本,逐字复制到目标文档中
代码如下所示:
<![CDATA[
<!--[if lte IE 7]>
<link rel="stylesheet" type="text/css" href="/rcm/verisign/style/2012/ie7.css"/>
<![endif]-->
]]>
<xsl:comment>
[if lte 7<![CDATA[>]]>
<link rel="stylesheet" type="text/css" href="/rcm/verisign/style/2012/ie7.css"/>
<![CDATA[<![endif]]]>
</xsl:comment>
希望有帮助。抱歉,原始答案不完整。您有:
<!--[if lte IE 7]>
这里有一种行之有效的方法——这是DOE有用的罕见案例之一:
<xsl:text disable-output-escaping="yes">
<!--[if lte IE 7]>
<link rel="stylesheet" type="text/css" href="/rcm/verisign/style/2012/ie7.css"/>
<![endif]-->
</xsl:text>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes"/>
<xsl:template match="/*">
<xsl:text disable-output-escaping="yes">
<!--[if lte IE 7]>
<link rel="stylesheet" type="text/css" href="/rcm/verisign/style/2012/ie7.css"/>
<![endif]-->
</xsl:text>
<p>
Done.
</p>
</xsl:template>
</xsl:stylesheet>
<!--[if lte IE 7]>
<link rel="stylesheet" type="text/css" href="/rcm/verisign/style/2012/ie7.css"/>
<![endif]-->
<p>
Done.
</p>
!--[如果lte IE 7]>
link rel=“stylesheet”type=“text/css”href=“/rcm/verisign/style/2012/ie7.css”/
![endif]-->
完整示例:
<xsl:text disable-output-escaping="yes">
<!--[if lte IE 7]>
<link rel="stylesheet" type="text/css" href="/rcm/verisign/style/2012/ie7.css"/>
<![endif]-->
</xsl:text>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes"/>
<xsl:template match="/*">
<xsl:text disable-output-escaping="yes">
<!--[if lte IE 7]>
<link rel="stylesheet" type="text/css" href="/rcm/verisign/style/2012/ie7.css"/>
<![endif]-->
</xsl:text>
<p>
Done.
</p>
</xsl:template>
</xsl:stylesheet>
<!--[if lte IE 7]>
<link rel="stylesheet" type="text/css" href="/rcm/verisign/style/2012/ie7.css"/>
<![endif]-->
<p>
Done.
</p>
!--[如果lte IE 7]>
link rel=“stylesheet”type=“text/css”href=“/rcm/verisign/style/2012/ie7.css”/
![endif]-->
完成。
将此转换应用于任何XML文档(未使用)时,将生成所需的正确结果:
<xsl:text disable-output-escaping="yes">
<!--[if lte IE 7]>
<link rel="stylesheet" type="text/css" href="/rcm/verisign/style/2012/ie7.css"/>
<![endif]-->
</xsl:text>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes"/>
<xsl:template match="/*">
<xsl:text disable-output-escaping="yes">
<!--[if lte IE 7]>
<link rel="stylesheet" type="text/css" href="/rcm/verisign/style/2012/ie7.css"/>
<![endif]-->
</xsl:text>
<p>
Done.
</p>
</xsl:template>
</xsl:stylesheet>
<!--[if lte IE 7]>
<link rel="stylesheet" type="text/css" href="/rcm/verisign/style/2012/ie7.css"/>
<![endif]-->
<p>
Done.
</p>
完成。
条件/ie-only样式表是否需要doctype?你有吗?据我所知没有。我只有一个XHTML1.0严格的doctype谢谢!您知道cdata块的外观吗?我以前从未使用过。我添加了,当我在文档中查看源代码时,所有括号都已转换为和。有什么建议吗?事实上,很抱歉,最后一件事——它仍然不起作用,因为在呈现的页面中,cdata块中的<和>变成了和。@user1436111-这很奇怪。这不应该。。。CDATA的全部要点在于它将内容视为纯文本,而不进行解析。参见@user1436111-做了一些进一步的研究;答案是否定的<代码>lte
正确。意思是“小于或等于”,这是他想要的。