Erkennung von Browsern und Weichen

Ich muss mal wieder mit einem Thema aufschlagen/nerven, dass die meisten offensichtlich vernachlässigen.

Ich möchte im CSS auf gewisse Browser-“Eigenheiten” eingehen.

Auch hier wieder [B]@alte Hasen hier im Forum:
Damit ich nicht unnötig warte, gebt dennoch mal ein kurzes Feedback falls Ihr nichts beitragen wollt oder könnt. - Danke! [/B]

Ich habe im base.tpl folgendes gefunden:

        [{oxstyle include="css/ie7.css" if="IE 7"}]
        [{oxstyle include="css/ie8.css" if="IE 8"}]

Leider hab ich keine Dokumentation zu oxstyle gefunden.
Diese Smarty-Funktion sammelt einzubindende CSS-Dateien um sie später auszugeben. Zusätzlich gibt es noch einen [B]Parameter “if”[/B].

Im Code zu dieser Funktion (function.oxstyle.php) konnte ich die Verfahrensweise mit dem IF-Parameter nicht rauslesen.
Hat Ihr Erklärungen dazu?

Das IF scheint auch nicht so wirklich zu funktionieren:

  • Z.B. wird bei dem
[{oxstyle include="css/ie8.css" if="IE 8"}]

diese Zeile im HTML ergänzt

<!--[if IE 8]><link rel="stylesheet" type="text/css" href="https://physiotherapie-bedarf.de/out/leimcke/src/css/ie8.css?1396351070"><![endif]-->
  • Bei dem
[{oxstyle include="css/ie7.css" if="IE 7"}]

passiert jedoch nichts im HTML, trotz dass es die Datei gibt.

[B]Kann ich irgendwie diese Funktion als zuverlässige Browser-Wiche nutzern?

Oder gibt es ein bereits fertiges Modul, welches ich nutzen kann. (ggf. auch mit Browser-kennung als body-klasse)? [/B]

Danke Vorab für Eure Antworten?

[QUOTE=Sir_Paladin;148401]Im Code zu dieser Funktion (function.oxstyle.php) konnte ich die Verfahrensweise mit dem IF-Parameter nicht rauslesen.
Hat Ihr Erklärungen dazu? [/quote]
in der Zeile 91 fängt es an
https://github.com/OXID-eSales/oxideshop_ce/blob/b-dev-ce/source/core/smarty/plugins/function.oxstyle.php

bei mir funktioniert alles. tmp/ geleert?

bedingt: CSS - Conditional comments

eine vollständige Browser-Weiche für alle Browser braucht man nicht. Browser-Spezifische CSS kannst du ruhig alle in eine CSS Datei packen und die jeweiligen Browser nehmen das, was sie brauchen/verstehen. Für Internet Explorer Versionen kannst du aber conditional comments nehmen.

Danke für die schnelle Antwort!

[QUOTE=vanilla thunder;148404]in der Zeile 91 fängt es an
https://github.com/OXID-eSales/oxideshop_ce/blob/b-dev-ce/source/core/smarty/plugins/function.oxstyle.php
[/QUOTE]

Ab der Zeile

$myConfig->setGlobalParameter($sCStyles, $aCStyles);

Hab ich mich nicht tiefer beschäftigt. Weil ich noch kein allzu tiefes System-Aufbau-Verständnis von OXID habe.
Generell scheint das also einfach nur ein Parameter für die Conditional Comments zu sein.

[QUOTE=vanilla thunder;148404]
bei mir funktioniert alles. tmp/ geleert?
[/QUOTE]
Ja das hat nichts geändert. Ich habe aber nun den Fehler gefunden:
Auf dem Webserver war die ie7.css nicht vorhanden, in der IDE allerdings schon.
Das hatte ich bestimmt vor einiger Zeit mal gelöscht weil ich diese Azure Garadients usw. nicht wollte. - Mein Fehler also.
(Wunderbar, dass letztendendes jeder Fehler sine logische Ursache hat! :wink: )