.. / IE Conditional Comments in XSLT

  1. xslt-examples

Стандартный метод:

           <! - xsl:comment><![CDATA[[if lte IE 7]>
                     <link rel=«stylesheet» href=«/css/ie.css» type=«text/css»  />
           <l![endif]]]></xsl:comment>
 

Метод не подходит если путь к CSS задается программно. Такое бывает когда в одной директории свалено сразу много проектов и каждый отличается от другого дизайном. Для этого есть другое решение:

<xsl:template match=«/»>
        <html>
            <head>
                <! - Meta tag to force IE to render in edge rendering mode (see above) - >
                <meta http-equiv=«X-UA-Compatible» content=«IE=edge,chrome=1»/>
                <! - Call the template that will output IE conditional comments - >
                <xsl:call-template name=«conditional-comment»>
                    <! - The 'qualifier' is the version of IE you want to target this is any version less than IE8 - >
                    <xsl:with-param name=«qualifier» select=«'lte IE 8'»/>
                    <! - The 'contentRTF' contains the link tag with attributes - >
                    <xsl:with-param name=«contentRTF»>
                        &lt;link rel=«stylesheet» type=«text/css» href=«{$workspace}/css/ie.css» /&gt;
                    </xsl:with-param>
                </xsl:call-template>
            </head>
            <body>
                <! - Page content - >
                <! - You might want to use <xsl:apply-templates/> here and use this utiltiy as a base for your 'master.xsl' - >
            </body>
        </html>
    </xsl:template>
    
    <! - The template that prints the IE conditional comment with the paramaters above - >
    <xsl:template name=«conditional-comment»>
        <xsl:param name=«qualifier»/>
        <xsl:param name=«contentRTF»/>
        <xsl:comment>
            [if <xsl:value-of select=«$qualifier»/>]<![CDATA[>]]>
            <xsl:copy-of select=«$contentRTF» />
            <![CDATA[<![endif]]]>
        </xsl:comment>
    </xsl:template>
    
</xsl:stylesheet>
 

Автор решения - Nick Fitzsimons

  1. 2012-01-23
  2. xslt-examples
  1. symphony-cms.com/download/xslt-utilities/view/21798/ - Первоисточник на сайте Syphony-CMS
Go Index Test