1

У меня проблема, которую я просто не могу понять. Недавно я создал веб-сайт в HTML и недавно интегрировал Symphony CMS и мне пришлось все изменить на XML.XML/XSLT условный комментарий IE stylesheet

Первоначально в моей голове, я был INTERNET EXPLORER конкретных таблиц стилей, голова выглядела примерно так:

<head> 
     <link rel="stylesheet" href="../css/master.css" type="text/css" media="screen"></link> 
     <!--[if IE]> 
      <link rel="stylesheet" type="text/css" href="../css/ie.css"></link> 
      <script src="../js/html5shiv.js"></script> 
     <![endif]--> 
</head> 

Так как переключение, этот условный комментарий не делает больше не работать, я изменил его на это, но к сожалению, мой master.css игнорируется для Chrome/Firefox и т. д. Он просто загружает таблицу стилей ie.css для всех браузеров.

<head> 
    <link rel="stylesheet" href="../css/master.css" type="text/css" media="screen"></link>     
    <xsl:comment>[if IE]<![CDATA[><!]]></xsl:comment> 
      <link rel="stylesheet" type="text/css" href="../css/ie.css"></link> 
      <script src="../js/html5shiv.js"></script> 
    <xsl:comment><![CDATA[<!]]>[endif]</xsl:comment>  
</head> 

К сожалению я довольно новичок в этом, и я просто не уверен, что я делаю неправильно, я предполагаю, что я, возможно, потребуется какое-то XSL: если комментарий, но только не уверен, как идти об этом действительно. Мне просто нужно что-то, что сделает chrome/firefox/opera/safari игнорировать таблицу стилей ie.css.

Любая помощь была бы принята с благодарностью! Благодаря

ответ

8

Просто используйте один xsl:comment и обернуть все содержимое в <![CDATA[]]> ...

<head> 
     <link rel="stylesheet" href="../css/master.css" type="text/css" media="screen"></link> 
     <xsl:comment><![CDATA[[if IE 6]> 
     <link rel="stylesheet" type="text/css" href="../css/ie.css"></link> 
     <script src="../js/html5shiv.js"></script> 
    <![endif]]]></xsl:comment> 
    </head> 
+0

Привет спасибо за предложение, я дам это попробовать в этот вечер, и пусть вы знаете, если это works :) – LT86

+0

Большое спасибо! Я уже пробовал выше, но, похоже, это был мой закрытый тег CDATA, который был неправильным. Вы исправили мою проблему большое спасибо! :) – LT86

+0

@LiamTarpey - Тебе очень рады. Примите мой ответ, нажав на галочку рядом с ним. Благодаря! –

1

Используйте шаблон, чтобы условные комментарии должны быть определены программно:

<xsl:template name="conditionalComment"> 
    <xsl:param name="qualifier" select="'IE'"/> 
    <xsl:param name="contentRTF" select="''" /> 


    <!--Use entity variables to allow invalid XML output from an XSLT processor--> 
    <xsl:comment>[if <xsl:value-of select="$qualifier"/>]<![CDATA[>]]> 
    <!--Use copy-of rather than value-of to preserve tag delimiters--> 
     <xsl:copy-of select="$contentRTF" /> 
    <!--Use CDATA to output raw characters--> 
     <![CDATA[<![endif]]]></xsl:comment> 

</xsl:template> 

Шаблон принимает два параметры:

<xsl:call-template name="conditionalComment"> 
    <!--Conditional check parameter--> 
    <xsl:with-param name="qualifier" select="'lte IE 6'"/> 
    <!--Stylesheet parameter--> 
    <xsl:with-param name="contentRTF"> 
     &lt;link rel="stylesheet" type="text/css" href="ie-win-fixup.css" /&gt; 
    </xsl:with-param> 
</xsl:call-template> 

Ссылки

Смежные вопросы