1

理解できないような問題が発生しています。私は少し前にHTMLでWebサイトを構築し、最近Symphony CMSを統合し、すべてをXMLに変更する必要がありました。

もともと私の頭の中には、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:ifコメントが必要かもしれないと思いますが、実際にどうすればよいかわかりません。chrome / firefox / operator/safariがie.cssスタイルシートを無視するようにするものが必要です。

どんな助けでも大歓迎です!ありがとう

4

2 に答える 2

8

1つを使用して、すべてのコンテンツを...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> 
于 2012-12-05T15:49:28.510 に答える
2

テンプレートを使用して、条件付きコメントをプログラムで定義できるようにします。

<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>

テンプレートは2つのパラメーターを取ります。

<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> 

参考文献

于 2014-05-23T13:35:30.860 に答える