spider: Browserweiche

Moin, ich habe folgendes Problem. Ich möchte XML Dateien mittels XSL darstellen. Das Design wird dabei in einer CSS Datei festgelegt. Da sich nicht alle Browser gleich verhalten, möchte ich dem IE eine separate CSS Datei anbieten. Aber Konstrikte wie

<!--[if lt IE 6]>
<link  href="style/ie5.css" rel="stylesheet" type="text/css" />
<![endif]-->

werden ignoriert. Bei normalen HTML Seiten funktioniert es, nur bei XML Dateien nicht. Nun zu meinen Fragen.

1. Hab ich einen Fehler in der Syntax?

2. Kann man Conditional Comments überhaupt in XSL Dateien benutzen?

3. Gibt es eventuell eine alternative Lösung dazu?

  1. spider,

    1. Hab ich einen Fehler in der Syntax?

    Nein.

    1. Kann man Conditional Comments überhaupt in XSL Dateien benutzen?

    Ich schätze, die Conditional Comments werden nur vom HTML-Parser des IE interpretiert. Läuft deine Transformation server- oder clientseitig?

    1. Gibt es eventuell eine alternative Lösung dazu?

    CSS-Browserweichen:
    * html foo    { /* wird nur von IEs interpretiert */ }
    hmtl>body foo { /* wird nicht von IEs interpretiert */ }

    Live long and prosper,
    Gunnar

    --
    „Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)
    1. Hallo Gunnar!

      * html foo    { /* wird nur von IEs interpretiert */ }
      hmtl>body foo { /* wird nicht von IEs interpretiert */ }

      └┘
      → html

      How To Make Love, du weißt doch. ;-)

      ℆, ℒacℎgas

      --
      Bei der intendierten Realisierung der linguistischen Simplifizierung
      des regionalen Idioms resultiert die Evidenz der Opportunität extrem
      apparent, den elaborierten und quantitativ opulenten Usus nicht assi-
      milierter Xenologien konsequent zu eliminieren!
  2. Hallo,

    1. Hab ich einen Fehler in der Syntax?

    Aus HTML-Sicht nicht.

    1. Kann man Conditional Comments überhaupt in XSL Dateien benutzen?

    Es sind lediglich Kommentare, die bei der Transformation nicht beruecksichtigt werden.

    1. Gibt es eventuell eine alternative Lösung dazu?

    Erzeuge den CC anderweitig. Formal bietet sich xsl:comment an, wobei sich wegen des speziellen Inhaltes "<![" hier dieses Konstrukt besser eignet:

      
    <xsl:text disable-output-escaping="yes">  
    &lt;!--[if lt IE 6]>  
    &lt;link href="style/ie5.css" rel="stylesheet" type="text/css" />  
    &lt;![endif]-->  
    </xsl:text>
    

    Hinweis: Die >-Zeichen sind in diesem Kontext unproblematisch (also keine &gt; erforderlich).

    MfG, Thomas

    1. Hallo Thomas,

      vielen Dank für deine Lösung. Sie funktioniert einwandfrei.

      Gruß spider