Browserweiche - IE stellt sich stur und Opera einbinden

  • Imagine Imagine
    Jedi-Ritter
    0 x
    95 Beiträge
    0 Hilfreiche Beiträge
    19. 07. 2006, 09:11

    Hallo TYPO3-Freunde,

    ich komme mit der Realisierung von Browserweichen nicht klar. Das ist weniger das Problem von TS, als dass der Browser erkennen soll, dass er jetzt gemeint ist.

    Folgendes Code-Schnippsel habe ich ins Setup eingebunden:
    [TS]page.headerData.10 = HTML
    page.headerData.10.value = <link rel="stylesheet" href="fileadmin/css/mozilla.css" type="text/css" />
    page.headerData.15 = HTML
    page.headerData.15.value.char = 10
    page.headerData.20 = HTML
    page.headerData.20.value = <!--[if IE 6]>
    page.headerData.25 = HTML
    page.headerData.25.value.char = 10
    page.headerData.30 = HTML
    page.headerData.30.value = <link rel="stylesheet" href="fileadmin/css/ie6.css" type="text/css">
    page.headerData.35 = HTML
    page.headerData.35.value.char = 10
    page.headerData.40 = HTML
    page.headerData.40.value = <![endif]-->
    [/TS]

    Firefox, Mozilla und Konqueror haben keinerlei Probleme und
    [code]<link rel="stylesheet" href="fileadmin/css/mozilla.css" type="text/css" />
    <!--[if IE 6]>
    <link rel="stylesheet" href="fileadmin/css/ie6.css" type="text/css">
    <![endif]-->[/code]
    wird auch im Quelltext angezeigt. Nur der IE ignoriert sein Stylessheet. Der nimmt immer mozilla.css.

    Das funktioniert auch nicht, wenn ich es mit einer normalen HTML-Datei ohne TYPO3 teste. Also
    [code]<link rel="stylesheet" type="text/css" href=
    "fileadmin/css/styles.css">
    <!--[if lt IE 6]><link rel="stylesheet" href="fileadmin/css/styles-ie.css" type="text/css"><![endif]-->
    <!--[if !IE]>
    --> [/code]
    im HTML-Code stehen habe.

    Wie kann ich das Problem lösen? Zweite Frage: Wie bekomme ich in den TS-Code die Abfrage für Opera rein, so dass ich opera6-7.css anstelle der anderen Stylessheets verwenden kann?

    Grüsse und vielen Dank

    Imagine


  • 1
  • laptop24 laptop24
    Jedi-Ratsmitglied
    0 x
    557 Beiträge
    0 Hilfreiche Beiträge
    19. 07. 2006, 15:56

    Hallo,

    Du könntest das Problem mal anders versuchen zu lösen.

    Denn das Problem, dass der IE das Conditional Comment nicht richtig ausliest ist kein TYPO3 Problem, sondern eher ein CSS Problem.

    Aber egal... Du könntest folgendes machen:

    [TS]# Setze das CSS für alle Browser (Firefox, IE, Opera)
    page.headerData.10 = HTML
    page.headerData.10.value = <link rel="stylesheet" href="fileadmin/css/mozilla.css" type="text/css" />

    # Setze das CSS für IE ab Version 4 neu
    [browser= msie][version= >4]
    page.headerData.10.value = <link rel="stylesheet" href="fileadmin/css/ie6.css" type="text/css">
    [end]

    # Setze das CSS für Opera (jede Version) neu
    [browser= opera]
    page.headerData.10.value = <link rel="stylesheet" href="fileadmin/css/opera.css" type="text/css">
    [end][/TS]

    Fertig. TYPO3 versucht den Browser zu identifizieren. Anschliessend wird nur das passende CSS ins Template eingetragen. Sprich jeder Browser bekommt genau EIN Stylesheet. Eine serverseitige Browserweiche, quasi.

    Ich hoffe, das hilft.

    MfG, Lars Thalheim

  • Imagine Imagine
    Jedi-Ritter
    0 x
    95 Beiträge
    0 Hilfreiche Beiträge
    19. 07. 2006, 21:24

    Vielen Dank, Lars,

    das hat sogar sehr geholfen. Opera und IE stimmen jetzt, nur hat es meine mozilla.css zerschossen. Da sind alle Styles verrutscht gegenüber der TS-Version, die ich hier reingestellt hatte.

    Da werde ich wohl noch einmal nacharbeiten müssen.

    Grüsse

    Imagine

  • Imagine Imagine
    Jedi-Ritter
    0 x
    95 Beiträge
    0 Hilfreiche Beiträge
    19. 07. 2006, 22:01

    Denkste.
    Wie gut dann doch wieder mal eine Inspiration am Klavier gut tut, du kommst aus der Gedankensperre heraus.
    Also, so wi eDu es mir gezeigt hast Lars, da wird auch für Firefox das IE-Style verwendet. So funktioniert das dann auch nicht.

    Grüsse

    Imagine

  • miwolfram miwolfram
    Jedi-Meister
    0 x
    386 Beiträge
    0 Hilfreiche Beiträge
    20. 07. 2006, 11:22

    [quote="Imagine"]
    Denkste.
    Wie gut dann doch wieder mal eine Inspiration am Klavier gut tut, du kommst aus der Gedankensperre heraus.
    Also, so wi eDu es mir gezeigt hast Lars, da wird auch für Firefox das IE-Style verwendet. So funktioniert das dann auch nicht.
    [/quote]
    Entweder hast du im Firefox den User-Agent als Internet-Explorer eingestellt, oder die zwei Conditions beim IE machen Probleme.
    Per Default werden Conditions mit [b]OR[/b] verbunden, d.h. es wird das IE-Stylesheet genommen wenn Brower IE ist ODER Version größer 4 hat. (die Versionsabfrage wird aber beim Firefox gar nicht funktionieren)

    Ab Typo3 Version 4.0 kann man Conditions explizit verunden indem man sie so schreibt:
    [TS][CONDITION 1]&&[CONDITION 2]oder:
    [CONDITION 1]AND[CONDITION 2][/TS]

  • 1